R2
把任何檔案丟上雲端,要拿回來看時不用再付一毛流量費。
R2 是什麼?
R2 是一種「物件儲存」(object storage,指專門用來存放大型檔案的服務,例如圖片、影片、備份、資料集)。你把檔案上傳上去,之後用名稱就能取回,完全不用自己管理硬碟。
你存進去的每個檔案叫做「物件(object)」,物件放在「儲存桶(bucket,可以想成一個有名字、像資料夾的容器)」裡。R2 還使用和 Amazon S3(全世界最熱門的物件儲存)一模一樣的介面(API),所以原本給 S3 用的工具和程式碼幾乎不用改就能直接套用。
把它想成…
一間超大型的倉儲中心。你依照存放的量付租金,但和別家倉庫不同的是——把箱子搬出來看完全免費,這就是大家最常稱讚的「零流出費(zero egress)」。
為什麼要用 R2?
傳統雲端儲存會收一筆「流出費(egress fee,也就是把資料從雲端「搬出去」給使用者所產生的費用)」。對於熱門的網站或 App,這筆突如其來的帳單甚至可能比儲存費還貴。R2 直接把它砍到零。
不收流出費
把檔案傳給網路上的使用者一律 0 元,無論流量多大都一樣。
相容 S3 工具
原本的 S3 SDK、命令列工具、應用程式幾乎不用改程式碼就能改指向 R2。
天生全球化
檔案透過 Cloudflare 遍布全球的網路提供,離使用者更近、更快。
搭配 Workers
可在 Workers 程式碼裡用簡單的「綁定」直接讀寫物件。
什麼時候該用 R2?
使用者上傳與媒體
網站或 App 的大頭貼、商品圖、PDF、影片檔案。
備份與封存
很少更動、但想安全又便宜保存的資料庫備份與日誌。
高流量下載
軟體更新檔、資料集、Podcast 集數等被大量下載的內容——這正是流出費平常最傷荷包的場景。
資料湖
存放原始分析資料與大數據檔案以供日後處理(Pipelines 就是把資料灌進這裡)。
怎麼開始用?
Wrangler 是 Cloudflare 的命令列工具(CLI,就是你在終端機裡輸入指令操作的程式)。下面的步驟會建立一個儲存桶、把它接到 Worker,並讀寫一個物件。
安裝 Wrangler 並登入
安裝工具,接著在它跳出的瀏覽器視窗登入你的 Cloudflare 帳號。
npm install -g wrangler wrangler login建立儲存桶
儲存桶名稱只能用小寫字母、數字和連字號(-),長度 3 到 63 個字元。
wrangler r2 bucket create my-app-files wrangler r2 bucket list把儲存桶綁定到 Worker
「綁定(binding)」會讓你的程式碼多一個變數(這裡叫 MY_BUCKET)來操作儲存桶。把這段加進 wrangler.jsonc。
{ "r2_buckets": [ { "binding": "MY_BUCKET", "bucket_name": "my-app-files" } ] }在程式碼裡讀寫物件
PUT 請求會把內容存成物件;其他請求則用名稱把它讀回來。
export default { async fetch(request, env) { const key = new URL(request.url).pathname.slice(1); if (request.method === "PUT") { await env.MY_BUCKET.put(key, request.body); return new Response(`Uploaded ${key}!`); } const object = await env.MY_BUCKET.get(key); if (object === null) { return new Response("Object Not Found", { status: 404 }); } return new Response(object.body); }, };部署上線
把你的 Worker 發布到 Cloudflare 的全球網路。
wrangler deploy
重點概念
物件 (Object)
一個存進去的檔案加上它的中繼資料,用唯一的 key(名稱/路徑)來尋找。
儲存桶 (Bucket)
裝著很多物件、有名字的容器,可以想成最上層的資料夾。
A 類與 B 類操作
A 類=寫入/列出(每百萬次 $4.50);B 類=讀取(每百萬次 $0.36)。下載流量依然免費。
S3 相容性
R2 接受和 Amazon S3 一樣的請求,所以 S3 的 SDK 與搬遷工具都能直接使用。
小提示與計費
免費額度很佛心
每個月免費送 10 GB 儲存空間、100 萬次 A 類操作、1,000 萬次 B 類操作——拿來學習或做小專案綽綽有餘。
- 儲存費為每 GB 每月 $0.015,存多少付多少。
- 流出費(把檔案傳給網路使用者)永遠是 $0——這是 R2 最大的賣點。
- 用像 uploads/2026/photo.jpg 這樣清楚的 key 前綴,就能像資料夾一樣整理物件。
- 幫儲存桶綁一個自訂網域,不用寫 Worker 也能公開提供檔案。