Перейти к основному содержимому

Записать файл (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":"…"}.
  • Пример потоковой записи в файл скрипта устройства через интерфейс на 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.