Write a File (RAW)
Streamed Write
-
Description
PUT /write_file?filename=[URL-encoded-filename] HTTP/1.1
[file data]- Accepts raw file bytes (not base64-encoded), suitable for large uploads
- Overwrites the target if it already exists
-
Possible Responses
- Success: HTTP 204, no response body
- Failure:
- HTTP 400 +
{"message":"invalid path"}(missingfilenameor invalid path) - HTTP 404 +
{"message":"invalid path"}(cannot create the target path) - HTTP 500 +
{"message":"…"}
- HTTP 400 +
-
Python 3.x example for streaming content to a script file (requires
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 on success
if resp.status_code != 204:
print(resp.text)
Base64 Write
-
Description
POST /write_file HTTP/1.1
{"filename":"file name","data":"base64-encoded content"} -
Possible Responses
{"code":0,"message":"Success"}{"code":4,"message":"Unable to write file"} -
Python 3.x example to write content to a script file (requires
requests):# -*- coding: utf-8 -*-
import base64
import requests
with open('r:/123.lua', 'rb') as f: # script file path, read raw bytes directly
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')
},
timeout=30,
)
print(resp.status_code, resp.reason) # 200 OK on success
print(resp.text)
Notes
- The root directory for both write methods is
/var/mobile/Media/1ferver/ - The streamed write endpoint is available in versions after
2025-07-11