Browse Files Media

stable · guide · 0.1.0

File Object lifecycle

狀態與責任

  1. Project Backend 建立 upload grant,聲明 SHA-256、content type 與最大 bytes。
  2. 呼叫端用 single-use token 上傳 bytes;File Object 狀態為 quarantine
  3. Project Backend 要求 completion,MiniCenter 驗證大小、雜湊、類型並進行惡意內容掃描。
  4. 通過後狀態為 available;失敗則為 rejected 並提供 rejection reason。
  5. Project Backend 先執行自己的 Membership 與 Project File 授權,再以 files:read 建立 opaque、短效 private download grant;MiniCenter URL 不會揭露 provider 或 storage key。
  6. 公開圖片只能以 files:write 引用事先核准、屬於同一 Project Client 的 image preset ID;JPEG/PNG 會先建立移除 metadata 的 variant,再複製到獨立 Public Asset storage。

available 之前不得提供下載、variant 或公開網址。download URL 與 upload token 都是短效 bearer;不得記錄或交給未經 Project Backend 授權的 browser。Public Asset URL 才能持久公開。不要把 Redis 或 queue 狀態當成 File Object 的持久事實。