跳至主要內容

讀取一個檔案(RAW)

流式讀取

  • 介面描述

    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"}(請求路徑是目錄)
  • 通過介面流式讀取裝置腳本檔案 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 讀取

  • 介面描述

    POST /read_file HTTP/1.1

    {"filename":"檔名"}
  • 可能的返回

    {"code":0,"message":"操作成功","data":"檔案內容的 base64 編碼字串"}
    {"code":4,"message":"无法读取文件"}
    {"code":8,"message":"参数错误"}
  • 通過介面從裝置讀取腳本檔案 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)

說明

  • 該介面檔案操作的根目錄為 /var/mobile/Media/1ferver/
  • 流式讀取 介面 2025-07-11 以後的版本可用