Cloudflare R2
大約 10 分鐘,建立儲存桶與建立權杖都不收費,就能在 Cloudflare R2 上給孤雲準備好一個桶和一對金鑰(R2 最大的特點是對外網路流量不額外計費)。
R2 的「位置」不用你選(預設自動放置),端點裡還帶帳號 ID —— 這是它與其他服務商最大的不同;主控台若顯示簡體,按鈕名稱請按同義對照。
分步操作
-
第 1 步
註冊並進入 R2
- 打開 Cloudflare 主控台 註冊或登入;已有帳號就直接登入。
- 在左側選「R2 物件儲存」(R2 object storage);第一次使用要先開通 R2,按頁面提示完成即可。
-
第 2 步
建立儲存桶
- 在 R2 概觀頁點「建立儲存桶」(Create bucket),填一個桶名:只能用小寫字母、數字與連字號,3–63 位。
- 「位置」(Location)保持預設(畫面會寫 Automatic,並說明放在 Asia Pacific);下面的「Specify jurisdiction」不要動,Default Storage Class 也保持 Standard;公開存取預設關閉,保持關閉,然後點「建立儲存桶」。
-
第 3 步
建立 API 權杖並取得金鑰
- 打開 R2 裡的「API Tokens」(API 權杖)頁。權杖分兩種:Account API token 綁整個帳號(Cloudflare 標注 recommended),User API token 綁你的使用者、離開組織後會失效 —— 個人帳號兩者等價,任選一個,點對應的「Create Account API token」/「Create User API token」。
- 權限選「Object Read & Write」,再把範圍限定到剛才那個桶;Access Key ID 與 Secret Access Key 只顯示一次,立刻存好。
-
第 4 步
記下帳號 ID
- 在同一頁的「帳號詳細資料」裡複製 Account ID(32 位十六進位);帳號首頁(Manage Account)也看得到。
- 端點由它決定:
https://<Account ID>.r2.cloudflarestorage.com。孤雲要額外填這一格:和騰訊雲 COS 的 APPID 一樣,R2 也比別的服務商多一項。
-
第 5 步
回孤雲填四個值並測試
- 孤雲「新增儲存」→ 服務商選 Cloudflare R2,依下面那張表填桶名、帳號 ID 與金鑰;Endpoint 已由 App 填好。
- 再點「測試連線並儲存」。
給這個權杖選對權限
R2 不用寫策略 JSON:給 S3 用戶端授權靠 API 權杖。建立權杖時這樣選:
- 權限(Permissions)選「Object Read & Write」—— 只能讀寫物件,不能建立桶、改桶設定。
- 資源(Resources)裡只勾剛才那個桶:這樣這對金鑰只能碰這一個桶。
- 建立後立刻複製 Access Key ID 與 Secret Access Key:Secret Access Key 只顯示一次。
R2 的 S3 API 沒有實作 PutBucketPolicy,所以這裡沒有策略 JSON 可貼 —— 授權就是上面這個權杖,這也是它與 AWS S3 最大的不同。
其他情況(用不到可以跳過)
主控台網址:https://dash.cloudflare.com/(直達 R2:https://dash.cloudflare.com/?to=/:account/r2/overview)。
別把 r2.dev 當端點
- 桶設定裡可以開啟一個
r2.dev公開網域,那是給瀏覽器公開存取用的,不是端點,孤雲不要填它。 - 孤雲要填的是 S3 API 端點
https://<Account ID>.r2.cloudflarestorage.com:建立權杖後的確認頁與 R2 概觀頁都看得到。
費用
- R2 有免費額度,涵蓋儲存與 A 類、B 類操作(僅標準儲存);實際額度以官網為準。
- 對外網路流量不額外計費:從 R2 下載不產生流量費,超過免費額度也一樣 —— 這是 R2 最大的特點。
- 其餘依用量計費;被拒絕的請求不收費。
官方來源
- R2 的 S3 API:區域、端點與支援的介面 (另開新視窗)
- 建立 R2 API 權杖(權限與限定桶) (另開新視窗)
抄下這四個值
它們要填進孤雲「新增儲存」頁對應的格子(R2 比別家多一格帳號 ID): 地點:R2 不用選(預設自動放置);端點由 App 依帳號 ID 自動填好、不用你填 —— 桶名、帳號 ID 與金鑰照上表填。(注意:主控台裡有兩個都像「S3 端點」的位址 —— 建立權杖後的確認頁「Use jurisdiction-specific endpoints → Default」那一行不帶桶名,正是這裡要的;桶的 Settings → S3 API 那一行結尾帶著 /你的桶名,那是桶級位址,別拿它填孤雲的 Endpoint。)
| 抄下這個值 | 填進孤雲的哪一格 |
|---|---|
| 桶名 你剛才建立的桶名,例如 your-bucket-name。 | 桶名稱 |
| 帳號 ID Account ID:R2 概觀頁「帳號詳細資料」裡那串 32 位十六進位,端點裡也用它。 | Account ID |
端點https://<Account ID>.r2.cloudflarestorage.com,不帶桶名;這一格由 App 自動填好,無需改動。 | Endpoint |
| 金鑰 剛才那個 API 權杖的 Access Key ID 與 Secret Access Key。 | Access Key ID 與 Secret Access Key |
怎麼知道成了
- 「測試連線並儲存」通過,說明這對金鑰能讀到這個桶;孤雲只讀根目錄,不會改動桶裡的東西。
- 之後這條儲存就會出現在孤雲的儲存列表裡,可以開啟看桶裡的檔案。
- 剛開通 R2 就點「測試連線」如果報 TLS / 安全連線類錯誤,等幾分鐘再試一次即可 —— 新帳號的 R2 端點需要一點時間就緒。
- 連線報錯時,到常見錯誤對照排查。
回到孤雲,點「測試連線並儲存」。