Записать файл (RAW)
Потоковая запись
-
Описание интерфейса
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 +
-
Пример потоковой записи в файл скрипта устройства через интерфейс на 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
-
Описание интерфейса
POST /write_file HTTP/1.1
{"filename":"[имя файла]","data":"[строка содержимого в кодировке base64]"} -
Возможные ответы
{"code":0,"message":"操作成功"}{"code":4,"message":"无法写入文件"} -
Пример записи в файл скрипта устройства через интерфейс на 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)
Описание
- корневой каталог файловых операций этого интерфейса —
/var/mobile/Media/1ferver/; - интерфейс потоковой записи доступен начиная с версии
2025-07-11.