Écrire un fichier (RAW)
Écriture en flux
-
Description de l’interface
PUT /write_file?filename=[nom du fichier encodé dans l’URL] HTTP/1.1
[données du fichier]- Reçoit directement le flux d’octets du fichier (non encodé en base64), ce qui convient aux téléversements de gros fichiers.
- Si le fichier cible existe déjà, il est écrasé.
-
Réponses possibles
- Succès : HTTP 204, sans corps de réponse.
- Échec :
- HTTP 400 +
{"message":"invalid path"}(filename non fourni ou chemin invalide) - HTTP 404 +
{"message":"invalid path"}(impossible de créer le chemin cible) - HTTP 500 +
{"message":"…"}
- HTTP 400 +
-
Exemple d’écriture en flux dans un fichier de script sur l’appareil via l’interface en Python 3.x (module requests requis) :
# -*- 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 en cas de succès
if resp.status_code != 204:
print(resp.text)
Écriture Base64
-
Description de l’interface
POST /write_file HTTP/1.1
{"filename":"nom du fichier","data":"chaîne du contenu encodée en base64"} -
Réponses possibles
{"code":0,"message":"操作成功"}{"code":4,"message":"无法写入文件"} -
Exemple d’écriture dans un fichier de script sur l’appareil via l’interface en Python 3.x (module requests requis) :
# -*- coding: utf-8 -*-
import base64
import requests
with open('r:/123.lua', 'rb') as f: # Chemin du script ; lire directement les octets
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') # Encoder directement les octets en base64
},
timeout=30,
)
print(resp.status_code, resp.reason) # 200 OK en cas de succès
print(resp.text)
Remarque
- La racine des opérations sur les fichiers de cette interface est
/var/mobile/Media/1ferver/. - L’interface Écriture en flux est disponible dans les versions postérieures à
2025-07-11.