Read a File (RAW)
Streamed Read
-
Description
GET /read_file?filename=[URL-encoded-filename] HTTP/1.1- Optional query
md5=1: addsContent-MD5(Base64) to the response headers
- Optional query
-
Possible Responses
- Success: HTTP 200, response body is the raw file bytes (not base64-encoded)
- Failure:
- HTTP 404 +
{"message":"File not found"}(file does not exist orfilenamemissing) - HTTP 415 +
{"message":"File is a directory"}(path points to a directory)
- HTTP 404 +
-
Python 3.x example for streaming a script file (requires
requests):# -*- coding: utf-8 -*-
import requests
with requests.get(
"http://192.168.31.72:46952/read_file",
params={"filename": "lua/scripts/123.lua", "md5": 1},
stream=True,
timeout=30,
) as r:
r.raise_for_status()
with open("r:/123.lua", "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
print("Content-MD5:", r.headers.get("Content-MD5"))
Base64 Read
-
Description
POST /read_file HTTP/1.1
{"filename":"file name"} -
Possible Responses
{"code":0,"message":"Success","data":"base64-encoded file content"}{"code":4,"message":"Unable to read file"}{"code":8,"message":"Invalid parameters"} -
Python 3.x example to read a script file from the device (requires
requests):# -*- coding: utf-8 -*-
import base64
import requests
resp = requests.post(
"http://192.168.31.72:46952/read_file",
json={"filename": "lua/scripts/123.lua"},
timeout=30,
)
print(resp.status_code, resp.reason) # 200 OK on success
if resp.status_code == 200:
ret = resp.json()
print(ret.get("message"))
if ret.get("code") == 0:
print(base64.b64decode(ret["data"]).decode("utf-8"))
else:
print(resp.text)
Notes
- The root directory for both read methods is
/var/mobile/Media/1ferver/ - The streamed read endpoint is available in versions after
2025-07-11