본문으로 건너뛰기

Screensaver Upload

사용자 정의 화면 보호기 이미지를 업로드합니다. 브라우저가 PNG / JPG / 이미지를 먼저 기기의 .ss 형식으로 변환하며, 이 API는 해당 사전 변환된 파일을 수신합니다.

대부분의 사용자는 NM Monitor의 Screensaver 페이지를 사용해야 합니다 — 변환이 자동으로 처리됩니다. 이 페이지는 프로그래밍 방식으로 자체 에셋을 푸시하려는 통합자를 위한 것입니다.


2단계 흐름​


GET /api/update/screensaver/preflight​

size 바이트의 파일을 저장할 수 있는지 기기에 묻습니다. 기기는 먼저 공간을 확보해야 하는지 결정합니다(가장 오래된 기존 화면 보호기 덮어쓰기).

쿼리 파라미터​

이름필수의미
size예업로드할 .ss 파일의 바이트 크기.

응답 — 파일이 맞는 경우​

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

응답 — 덮어쓰기가 필요한 경우​

{
"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
}

응답 — 너무 큰 경우​

{
"fileSize": 1500000,
"fsFree": 60000,
"maxUploadable": 400000,
"action": "reject",
"overwriteCount": 0,
"overwriteFiles": [],
"existingCount": 4,
"spaceAfter": 0
}
필드유형의미
fileSizeinteger요청된 업로드 크기의 에코.
fsFreeinteger기기 FS의 현재 여유 바이트.
maxUploadableinteger여유 바이트 더하기 기존 화면 보호기 전체 바이트 — 절대 상한.
actionstring"new", "overwrite" 또는 "reject".
overwriteCountinteger공간 확보를 위해 삭제될 기존 화면 보호기 수.
overwriteFilesobject[]곧 제거될 파일 목록(name + size).
existingCountinteger현재 화면 크기와 일치하는 기존 화면 보호기 파일 수.
spaceAfterinteger업로드 후 예상 여유 바이트.

POST /api/update/screensaver​

실제 .ss 파일을 multipart/form-data로 업로드합니다.

요청​

  • 콘텐츠 유형: multipart/form-data
  • 파일 확장자: .ss로 끝나야 함.
  • 최대 크기: 200 KB.
  • 파일의 첫 2바이트: 매직 0x4E 0x53.

응답 — 성공​

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

응답 — 실패​

상태본문원인
400Only .ss files are accepted.잘못된 파일 확장자.
400Invalid .ss file header.매직 바이트 불일치.
413File too large (max 200 KB).본문이 200 KB 초과.
500Failed to open file for writing.파일 시스템 오류.
500Write error.쓰기 중 파일 시스템 오류.

예시​

SIZE=$(stat -c%s saver_320_240_003.ss)
curl "http://192.168.1.42/api/update/screensaver/preflight?size=$SIZE"
# "action"을 확인하고 "reject"면 중단
curl -X POST -F "file=@saver_320_240_003.ss" \
http://192.168.1.42/api/update/screensaver
경고

화면 보호기를 업로드하면 파일 시스템 플러시 동안 마이닝이 잠시 일시 중지됩니다. 해시레이트는 약 1초 내에 정상으로 돌아옵니다.