diff options
| author | Adam Malczewski <[email protected]> | 2026-04-09 19:40:01 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-04-09 19:40:01 +0900 |
| commit | a39e2501b81c1e52437839e018bd5bf07b46616c (patch) | |
| tree | c732f7e7b2c7bdf5fadf90a1b2d98bea3f8cbd13 /src/lib/flashair/client.ts | |
| parent | 1bfd3e50842fdd511fc89d2b5892f8d440914cca (diff) | |
| download | flashair-speedsync-a39e2501b81c1e52437839e018bd5bf07b46616c.tar.gz flashair-speedsync-a39e2501b81c1e52437839e018bd5bf07b46616c.zip | |
add image deletion
Diffstat (limited to 'src/lib/flashair/client.ts')
| -rw-r--r-- | src/lib/flashair/client.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/flashair/client.ts b/src/lib/flashair/client.ts index 978eb60..63ed6fb 100644 --- a/src/lib/flashair/client.ts +++ b/src/lib/flashair/client.ts @@ -197,6 +197,28 @@ export const flashair = { return { blob, meta }; }, /** + * Delete a file from the FlashAir card. + * Requires UPLOAD=1 in the CONFIG file. + * @param path - Absolute path on the card, e.g. "/DCIM/100__TSB/DSC_0001.JPG" + */ + async deleteFile(path: string): Promise<void> { + const base = getBaseUrl(); + const res = await fetch(`${base}/upload.cgi?DEL=${path}`); + if (!res.ok) { + if (res.status === 404) { + throw new Error( + 'File deletion is not enabled. Add UPLOAD=1 to /SD_WLAN/CONFIG on the SD card and restart the FlashAir.' + ); + } + throw new Error(`deleteFile failed: ${res.status} ${res.statusText}`); + } + const text = await res.text(); + if (text.trim() !== 'SUCCESS') { + throw new Error(`deleteFile failed: card returned ${text.trim()}`); + } + }, + + /** * Recursively list all image files on the card starting from a root directory. * Returns files sorted by date, newest first. */ |
