stable · guide · 0.1.0
File Object lifecycle
狀態與責任
- Project Backend 建立 upload grant,聲明 SHA-256、content type 與最大 bytes。
- 呼叫端用 single-use token 上傳 bytes;File Object 狀態為
quarantine。 - Project Backend 要求 completion,MiniCenter 驗證大小、雜湊、類型並進行惡意內容掃描。
- 通過後狀態為
available;失敗則為rejected並提供 rejection reason。 - Project Backend 先執行自己的 Membership 與 Project File 授權,再以
files:read建立 opaque、短效 private download grant;MiniCenter URL 不會揭露 provider 或 storage key。 - 公開圖片只能以
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 的持久事實。