# 前言

使用 R2儲存空間 主要用於

  • 靜態網站資源(圖片、CSS、JS)
  • 影片與音頻存放(無頻寬費用)
  • 備份與長期存儲
  • CDN 加速的檔案存放(透過 Cloudflare Workers 讀取 R2 資料)

# 收費標準

# 計費方式

  1. 存儲費用
  • 標準存儲:每月每 GB 收費 $0.015。
  1. 操作費用:
  • Class A 操作(通常涉及狀態變更,如 PUTCOPYPOSTLIST 等):每 100 萬次操作收費 $ 4.50
  • Class B 操作(通常涉及狀態讀取,如 GETSELECT 等):每 100 萬次操作收費 $0.36。
  1. 外傳輸費用:

無論使用哪種存儲類型,從 R2 存儲中取出的數據均不收取外傳輸費用。

# 免費使用額度

存儲:每月前 10 GB 免費。
Class A 操作:每月前 1,000,000 次操作免費。
Class B 操作:每月前 10,000,000 次操作免費。

# 注意事項

  1. 存儲費用是基於 每月的平均存儲量 計算的。
  2. 操作費用是根據 操作類型次數 計算的。
  3. 外傳輸(egress)數據不收取額外費用。

# Bucket

基本上填寫 名稱 就好, 位置預設類型 都不動沒關係。
image

之後進入該 Bucket,就可以上傳檔案了

# 獲取檔案 URL

# 直接開啟公開連結

設定 -> R2.dev 子網域 -> 允許存取

# 使用 Worker (推薦)

  1. 在 Cloudflare 管理頁面裡的 Workers & Pages ,建立一個 Worker ,,直接點選 Hello world 的範本

會創建一個 worker.js
複製下列程式碼

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 },
    });
  }
};
  1. 進入該 Worker 的設定, 繫結 新增一個 R2 貯體
    變數名稱: MY_BUCKET
    R2 貯體: 選擇你的 R2 貯體

如此,就可以透過 https://{your-worker.example}.workers.dev/{filename} 存取檔案了