# 前言
使用 R2儲存空間
主要用於
- 靜態網站資源(圖片、CSS、JS)
- 影片與音頻存放(無頻寬費用)
- 備份與長期存儲
- CDN 加速的檔案存放(透過 Cloudflare Workers 讀取 R2 資料)
# 收費標準
# 計費方式
- 存儲費用
- 標準存儲:每月每 GB 收費 $0.015。
- 操作費用:
- Class A 操作(通常涉及狀態變更,如
PUT
、COPY
、POST
、LIST
等):每 100 萬次操作收費 $ 4.50。 - Class B 操作(通常涉及狀態讀取,如
GET
、SELECT
等):每 100 萬次操作收費 $0.36。
- 外傳輸費用:
無論使用哪種存儲類型,從 R2 存儲中取出的數據均不收取外傳輸費用。
# 免費使用額度
存儲:每月前 10 GB
免費。
Class A 操作:每月前 1,000,000
次操作免費。
Class B 操作:每月前 10,000,000
次操作免費。
# 注意事項
- 存儲費用是基於
每月的平均存儲量
計算的。 - 操作費用是根據
操作類型
和次數
計算的。 - 外傳輸(egress)數據不收取額外費用。
# Bucket
基本上填寫 名稱
就好, 位置
跟 預設類型
都不動沒關係。
之後進入該 Bucket,就可以上傳檔案了
# 獲取檔案 URL
# 直接開啟公開連結
設定 -> R2.dev 子網域
-> 允許存取
# 使用 Worker (推薦)
- 在 Cloudflare 管理頁面裡的
Workers & Pages
,建立一個Worker
,,直接點選Hello world
的範本
會創建一個 worker.js
複製下列程式碼
export default { | |
async fetch(request, env) { | |
const url = new URL(request.url); | |
const objectName = url.pathname.substring(1); | |
const object = await env.MY_BUCKET.get(objectName); | |
if (!object) return new Response("Not Found", { status: 404 }); | |
return new Response(object.body, { | |
headers: { "Content-Type": object.httpMetadata.contentType }, | |
}); | |
} | |
}; |
- 進入該
Worker
的設定,繫結
新增一個R2 貯體
變數名稱: MY_BUCKET
R2 貯體: 選擇你的 R2 貯體
如此,就可以透過 https://{your-worker.example}.workers.dev/{filename}
存取檔案了