01 / DECISION
何時值得加入這個 primitive
R2 適合 blobs、artifacts、media、exports,以及不需要 relational query 的 durable objects。
02 / ARCHITECTURE
建立最小且站得住腳的路徑
定義 key prefix 與 ownership、設定 content type 和 metadata、選擇 public 或 signed access,並記錄 retention 與 orphan cleanup。
- 01先命名 contract
R2 適合 blobs、artifacts、media、exports,以及不需要 relational query 的 durable objects。
- 02只加入一個 primitive
定義 key prefix 與 ownership、設定 content type 和 metadata、選擇 public 或 signed access,並記錄 retention 與 orphan cleanup。
- 03保留 failure evidence
對 disposable object 測試 upload、retrieve、range-read 與 delete,確認 headers、access denial、retention 與 missing-object 行為。
03 / REPRODUCE
有證據,再有信心
對 disposable object 測試 upload、retrieve、range-read 與 delete,確認 headers、access denial、retention 與 missing-object 行為。
npx wrangler r2 object put BUCKET/demo.txt --file=demo.txt 04 / BOUNDARY
Production boundary
Public bucket 與可猜測 key 可能暴露資料;object storage 不會自動提供 application authorization 或 lifecycle intent。
05 / FIRST-PARTY SOURCES
讓第一方來源保持權威
產品行為、限制、價格與供應狀態會改變;採取行動前請重新核對這些來源。