본문으로 건너뛰기

파일 읽기(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"}(요청 경로가 디렉터리임)
  • 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 이후 버전에서 사용할 수 있습니다