Saltar al contenido principal

Carga de protector de pantalla

Suba una imagen de protector de pantalla personalizada. El navegador convierte primero un PNG / JPG / imagen al formato .ss del dispositivo; esta API recibe ese archivo ya convertido.

La mayoría de los usuarios deberían usar la página Screensaver en NM Monitor — realiza la conversión automáticamente. Esta página es para integradores que desean enviar sus propios recursos mediante programación.


Flujo de dos pasos​


GET /api/update/screensaver/preflight​

Pregunta al dispositivo si un archivo de size bytes puede almacenarse. El dispositivo decide si primero debe liberar espacio (sobrescribiendo el protector de pantalla más antiguo).

Parámetros de consulta​

NombreRequeridoSignificado
sizesíTamaño en bytes del archivo .ss que pretende subir.

Respuesta — el archivo cabe​

{
"fileSize": 65536,
"fsFree": 262144,
"maxUploadable": 327680,
"action": "new",
"overwriteCount": 0,
"overwriteFiles": [],
"existingCount": 2,
"spaceAfter": 196608
}

Respuesta — necesita sobrescribir​

{
"fileSize": 180000,
"fsFree": 60000,
"maxUploadable": 400000,
"action": "overwrite",
"overwriteCount": 2,
"overwriteFiles": [
{"name": "saver_320_240_001.ss", "size": 65536},
{"name": "saver_320_240_002.ss", "size": 72104}
],
"existingCount": 4,
"spaceAfter": 17640
}

Respuesta — demasiado grande​

{
"fileSize": 1500000,
"fsFree": 60000,
"maxUploadable": 400000,
"action": "reject",
"overwriteCount": 0,
"overwriteFiles": [],
"existingCount": 4,
"spaceAfter": 0
}
CampoTipoSignificado
fileSizeintegerEco del tamaño de carga solicitado.
fsFreeintegerBytes libres actuales en el FS del dispositivo.
maxUploadableintegerBytes libres más todos los bytes de protectores existentes — el límite superior absoluto.
actionstring"new", "overwrite" o "reject".
overwriteCountintegerCuántos protectores existentes se eliminarán para hacer espacio.
overwriteFilesobject[]La lista de archivos a punto de eliminarse (name + size).
existingCountintegerArchivos de protector existentes que coinciden con el tamaño de pantalla actual.
spaceAfterintegerBytes libres previstos una vez que la carga aterrice.

POST /api/update/screensaver​

Sube el archivo .ss real como multipart/form-data.

Solicitud​

  • Tipo de contenido: multipart/form-data
  • Extensión de archivo: debe terminar en .ss.
  • Tamaño máximo: 200 KB.
  • Primeros 2 bytes del archivo: magic 0x4E 0x53.

Respuesta — éxito​

{
"status": "ok",
"path": "/ss/saver_320_240_003.ss"
}

Respuesta — fallo​

EstadoCuerpoCausa
400Only .ss files are accepted.Extensión de archivo incorrecta.
400Invalid .ss file header.Los bytes magic no coinciden.
413File too large (max 200 KB).El cuerpo excedió 200 KB.
500Failed to open file for writing.Error del sistema de archivos.
500Write error.Error del sistema de archivos durante la escritura.

Ejemplo​

SIZE=$(stat -c%s saver_320_240_003.ss)
curl "http://192.168.1.42/api/update/screensaver/preflight?size=$SIZE"
# inspeccione "action"; si es "reject", aborte
curl -X POST -F "file=@saver_320_240_003.ss" \
http://192.168.1.42/api/update/screensaver
aviso

Subir un protector de pantalla pausa brevemente el minado mientras el sistema de archivos se vacía. La tasa de hash vuelve a la normalidad en ~1 segundo.