ファイルに書き込む(RAW)
ストリーミング書き込み
-
API の説明
PUT /write_file?filename=[URL エンコード済みファイル名] HTTP/1.1
[ファイルデータ]- ファイルのバイトストリームを直接受信します(base64 エンコードなし)。大きなファイルのアップロードに適しています
- 対象ファイルがすでに存在する場合は上書きされます
-
想定されるレスポンス
- 成功:HTTP 204。レスポンスボディはありません
- 失敗:
- HTTP 400 +
{"message":"invalid path"}(filename が指定されていない、またはパスが不正な場合) - HTTP 404 +
{"message":"invalid path"}(対象のパスを作成できない場合) - HTTP 500 +
{"message":"…"}
- HTTP 400 +
-
API を使用してデバイス上のスクリプトファイルへストリーミングで内容を書き込む Python 3.x の例(requests モジュールが必要):
# -*- coding: utf-8 -*-
import requests
with open("r:/123.lua", "rb") as f:
resp = requests.put("http://192.168.31.72:46952/write_file", params={"filename": "lua/scripts/123.lua"}, data=f, timeout=30)
print(resp.status_code, resp.reason) # 成功時は 204 No Content
if resp.status_code != 204:
print(resp.text)
Base64 による書き込み
-
API の説明
POST /write_file HTTP/1.1
{"filename":"ファイル名","data":"内容の base64 エンコード文字列"} -
想定されるレスポンス
{"code":0,"message":"操作成功"}{"code":4,"message":"无法写入文件"} -
API を使用してデバイス上のスクリプトファイルへ内容を書き込む Python 3.x の例(requests モジュールが必要):
# -*- coding: utf-8 -*-
import base64
import requests
with open('r:/123.lua', 'rb') as f: # スクリプトファイルのパス。バイト列として直接読み込む
resp = requests.post(
"http://192.168.31.72:46952/write_file",
json={
"filename": "lua/scripts/123.lua",
"data": base64.b64encode(f.read()).decode('utf-8') # バイト列を直接 base64 エンコードする
},
timeout=30,
)
print(resp.status_code, resp.reason) # 成功時は 200 OK
print(resp.text)
補足
- この API でファイル操作の基準となるルートディレクトリは
/var/mobile/Media/1ferver/です - ストリーミング書き込み API は
2025-07-11以降のバージョンで利用できます