清理 API
DELETE /api/media/{hash}
這個 endpoint 需要 X-API-Key,用途是刪除某個 hash 對應的媒體資產與相關追蹤資料。
這類內部呼叫所使用的 API_KEY 與 base URL 相關設定,請見 設定。
curl 範例
BASE_URL='http://localhost:3000'
API_KEY='replace-with-api-key'
MEDIA_HASH='movie-2026-04-01'
curl -i \
-X DELETE \
-H "X-API-Key: $API_KEY" \
"$BASE_URL/api/media/$MEDIA_HASH"
回應狀態取決於 Vylux 能不能確認該媒體已經真的被清掉。
目前清理範圍
- media bucket 中由該 hash 產生的資產
- 已追蹤的同步圖片快取紀錄
- queue 中仍存在的相關 active / retry / scheduled tasks
- encryption key 紀錄與 job 紀錄
語義說明
204 No Content代表 cleanup 已完成,或該 hash 原本就已經被清乾淨503 Service Unavailable代表 Vylux 目前無法確認 cleanup 完成,呼叫端應重試- 重試是安全的:部分失敗之後再次呼叫,仍應最終收斂到
204 - 影響 caller 是否可安全忘掉該 hash 的 critical stages 包含 task cancellation、media object deletion、與 tracked cache object deletion
- encryption key 與 job row 等 metadata cleanup 只會在 critical cleanup 成功後才繼續執行
- 建議由內部管理後台、補償任務或保留政策流程呼叫,而不是直接暴露給終端用戶
cleanup 未完成時的回應範例
{
"message": "cleanup incomplete for movie-2026-04-01",
"retryable": true,
"completed_stages": ["task_cancellation"],
"failed_stages": ["media_objects"]
}
呼叫端建議
- 只有在收到
204時,才把該 hash 視為可安全遺忘 - 收到
503時,應把它視為可重試的 cleanup failure - 在 cleanup 確認完成之前,不要先刪掉自己那邊代表該媒體的 source-of-truth 記錄