파일 읽기(RAW)
스트리밍 읽기
-
API 설명
GET /read_file?filename=[URL 인코딩된 파일 이름] HTTP/1.1- 선택적 쿼리 매개변수
md5=1: 응답 헤더에Content-MD5(Base64)를 추가합니다
- 선택적 쿼리 매개변수
-
가능한 응답
- 성공: HTTP 200, 응답 본문은 파일 콘텐츠의 바이트 스트림입니다(base64로 인코딩되지 않음)
- 실패:
- HTTP 404 +
{"message":"File not found"}(파일이 없거나 filename이 전달되지 않음) - HTTP 415 +
{"message":"File is a directory"}(요청 경로가 디렉터리임)
- HTTP 404 +
-
API를 통해 기기의 스크립트 파일을 스트리밍 방식으로 읽는 Python 3.x 예제(
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 읽기
-
API 설명
POST /read_file HTTP/1.1
{"filename":"파일 이름"} -
가능한 응답
{"code":0,"message":"操作成功","data":"파일 내용의 base64 인코딩 문자열"}{"code":4,"message":"无法读取文件"}{"code":8,"message":"参数错误"} -
API를 통해 기기에서 스크립트 파일을 읽는 Python 3.x 예제(
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
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")) # base64 데이터를 디코딩한 뒤 UTF-8로 명시적으로 디코딩
else:
print(resp.text)
참고
- 이 API의 파일 작업 루트 디렉터리는
/var/mobile/Media/1ferver/입니다 - 스트리밍 읽기 API는
2025-07-11이후 버전에서 사용할 수 있습니다