Cloudflare R2 物件儲存:免費額度與圖床備份應用

Cloudflare R2 是 S3 相容的物件儲存,標準儲存每 GB 月 0.015 美元、對外流出流量不收費,每月免費額度含 10 GB 儲存與 100 萬次 Class A、1,000 萬次 Class B 操作。整理免費額度細節、三種網站規模費用試算、低頻儲存等級取捨、自訂網域與 r2.dev 差異、S3 相容範圍,以及 WordPress 圖片外接與備份兩種落地情境。
本頁目錄
- 物件儲存在解決什麼問題:從主機空間講起
- R2 的核心承諾:沒有流出費的物件儲存
- 免費額度拆解:10 GB 儲存與兩種操作額度怎麼用
- 費用試算:三種網站規模的每月帳單
- 標準與低頻兩種儲存等級:何時該選低頻
- 開通前要知道的帳務規則
- 公開檔案的兩條路:自訂網域與 r2.dev
- 用自訂網域把 R2 變成免運費的檔案分送網
- S3 相容的真實程度:能直接接什麼、什麼會踩空
- 預簽 URL:把私有檔案安全地交給瀏覽器
- WordPress 圖片外接:把媒體庫搬到 R2
- 備份落地:比你想的更划算的異地副本
- 從 S3 搬家:Super Slurper 與 Sippy
- 台灣網站的資料位置與延遲
- 限制與地雷清單
- 誰適合上 R2,誰先緩一緩
- 上路前的行動清單
網站經營到某個規模,檔案就會開始跟你討債:圖片把主機空間塞滿、備份壓縮檔找不到地方放、影片想吃掉你所有的頻寬。Cloudflare R2 就是為了這類需求設計的物件儲存服務,官方文件對它的定位是存放大量非結構化資料的成本可控方案,而且強調不收流出頻寬費。對習慣看 AWS S3 帳單的人來說,後面這句話才是重點:儲存費之外,把檔案讀出去給訪客的流量,在 R2 這條線上是零。
這篇整理 R2 的完整入門輪廓:物件儲存的運作邏輯、免費額度的細節與計費規則、三種網站規模的費用試算、標準與低頻兩種儲存等級的取捨、開通前要準備的帳務事項、公開存取的兩條路、S3 相容的真實程度,以及 WordPress 圖片外接與備份兩種最常見的落地情境。所有價格與數字都以 Cloudflare 官方文件為準,引用出處會在行文中標示。
先給一個定位感:如果你把網站比喻成一間店,主機是廚房,R2 就是倉庫。廚房空間貴、放不下太多東西,倉庫便宜、能堆大量存貨,而且 R2 這間倉庫的貨車出入不另收過路費。理解了這個分工,後面所有取捨都好判斷。
快速重點整理:Cloudflare R2 是 S3 相容的物件儲存,標準儲存每 GB 月 0.015 美元,寫入與讀取操作另計,對外流出流量不收費。每月免費額度含 10 GB 儲存、100 萬次 Class A 操作、1,000 萬次 Class B 操作,小站常見的圖床與備份情境有機會長期貼近零成本。公開分享走自訂網域才有快取與防護能力,r2.dev 測試網址不能上正式站。付款方式失效有 30 天補救期,逾期資料可能刪除。
物件儲存在解決什麼問題:從主機空間講起
傳統虛擬主機給你一個固定目錄,網頁、圖片、外掛、備份全塞在同一顆硬碟裡。這個模型在網站小的時候運作良好,問題在三個地方發酵。空間成長有上限,主機方案的磁碟配額漲價幅度遠比物件儲存兇。備份放在同一台機器上,主機出事時備份一起陪葬,不符合異地保存原則。流量與主機綁在一起,一次備份下載或一張爆紅圖片,就把整站可用的頻寬吃光。
物件儲存把「存檔案」這件事從主機剝離出來。你不管理檔案系統,只操作兩個單位:儲存桶 bucket 與物件 object。桶是命名空間,物件是檔案本體加上它的中繼資料,每個物件用一個 key 定址,長得像路徑但不等同於資料夾。沒有目錄階層、沒有權限樹,就是一個超大鍵值倉庫。這個極簡模型換來的是幾乎無上限的橫向擴展:官方限制頁明載單一桶的儲存容量與物件數量無上限,單一帳號最多可建 100 萬個桶,單一物件最大 5 TiB。

因為介面夠簡單,Amazon S3 在 2006 年定下的 API 久而久之成了產業通用語。備份軟體、圖床外掛、部署工具、命令列同步器都會講這套語言。R2 從第一天就選擇相容這套 API,相容性文件的開場白寫得直白:R2 實作 S3 API,讓使用者與應用程式可以輕鬆遷移。對你的意義是:會接 S3 的工具,多半改個端點與金鑰就能接 R2。
R2 的核心承諾:沒有流出費的物件儲存
雲端儲存的帳單結構通常有三塊:存放多少資料、做了多少操作、對外傳出多少流量。前兩塊各家差距有限,真正的斷層在第三塊。以 AWS S3 為例,官方定價頁對資料傳出網際網路的計價,在每月跨服務共享的前 100 GB 免費之後,每 GB 約 0.09 美元起,依區域與用量層級調整。一個每月對外流出 1 TB 的圖片站,光流量費就是四位數新台幣的開銷。
R2 的定價哲學是把第三塊歸零。官方文件描述 R2 讓開發者存放大量非結構化資料,而不需負擔一般雲端儲存服務高昂的流出頻寬費。這不是促銷期的優惠,是產品結構。背後的商業邏輯外界只能推論:Cloudflare 經營自家骨幹與邊緣網路,內部成本怎麼分攤並未揭露,這段當背景理解即可,對你有意義的事實只有一件:帳單上的 R2 流出費確實是零。
把兩種計費邏輯攤開看最清楚。S3 的世界裡,檔案愈受歡迎帳單愈貴,因為每一次訪客下載都是對外流量;這造成一種矛盾的心理:你花力氣優化內容吸引流量,流量本身卻在懲罰你的儲存帳單。R2 把這條曲線拉平:檔案被讀一百次與一百萬次,流量成本都是零,差別只剩讀取操作的小額計費。對以內容變現的網站,這個結構性的差異比單月省多少錢更重要,因為它讓流量成長與帳單脫鉤:被讀走多少位元組不再計價,剩下的變數只有存量與操作次數。
要誠實說明邊界:零流出費指的是經過 R2 本身的讀取。官方定價頁的附註提醒,若透過其他需計費的服務連到儲存桶,那些服務本身的費用照收。R2 不是萬物免費,是這個產品本身不對流出流量計價。
免費額度拆解:10 GB 儲存與兩種操作額度怎麼用
依 2026 年 8 月更新的官方定價頁,R2 每月隨帳號附贈的免費額度有三項:10 GB 月的標準儲存、100 萬次 Class A 操作、1,000 萬次 Class B 操作,對外流出流量一樣免費。三個額度每月重新計算,不用申請、不會累積。免費額度只適用標準儲存,低頻儲存從第一個位元組起跳計費,這點後面會展開。
兩種操作額度的區分是入門最容易混淆的地方。Class A 涵蓋寫入與列舉類操作:上傳物件、複製物件、列出桶內清單這類會改變或巡視儲存狀態的動作,單價較高。Class B 涵蓋讀取類操作:取回物件內容、查詢物件中繼資料,單價低一個量級。刪除類操作免費,官方明列刪除物件、刪除桶、中止分段上傳不計費。一個務實的心法:把 Class A 想成寫入側額度、Class B 想成讀取側額度,圖床與備份兩種情境的用量分布完全不同,前者讀多寫少,後者寫多讀極少。
1,000 萬次 Class B 是什麼概念?一張網頁若有 20 張圖,每月 5 萬次頁面瀏覽,圖片讀取約 100 萬次,只有額度的十分之一。換句話說,多數中小型網站的圖床流量,讀取操作整個落在免費範圍內。100 萬次 Class A 對備份情境也相當寬裕:每天寫入一次 500 MB 的備份檔,用 64 MB 分段上傳約 8 個分段,加上起始與完成請求,一個月操作量在數百次等級,連額度的千分之一都用不到。
計費還有幾條規則值得記住。用量先按計費單位無條件進位,再套用免費額度:標準等級 1,000,001 次 Class A 操作會進位成 200 萬次,扣掉 100 萬次免費額度後,付費操作量是 100 萬次;1.1 GB 月的儲存進位成 2 GB 月,若還在 10 GB 免費額度內就收不到錢。GB 月這個單位取的是 30 天計費週期內每日尖峰儲存量的平均值,月底才刪檔只能壓低剩餘日數的峰值,先前累積的用量救不回來。官方定價頁常見問答明示,回應 401 未授權的請求不計費,別人拿無效金鑰掃你的桶,這類請求不會進帳單;其他類型的錯誤回應是否計費,官方沒有一概保證。
左右捲動檢視完整表格
| 計費項目 | 免費額度(每月) | 超過後費率 |
|---|---|---|
| 標準儲存 | 10 GB 月 | 每 GB 月 0.015 美元 |
| Class A 操作(寫入、列舉) | 100 萬次 | 每百萬次 4.50 美元 |
| Class B 操作(讀取) | 1,000 萬次 | 每百萬次 0.36 美元 |
| 對外流出流量 | 無上限 | 0 美元 |
| 刪除類操作 | 無上限 | 0 美元 |
費用試算:三種網站規模的每月帳單
帳單感比費率表更有用。以下三個情境全部用官方費率計算,假設 30 天計費週期內每日尖峰儲存量持平,1 TB 以 1,000 GB 計。新台幣換算以 1 美元約 32 元計,實際依匯率與發卡銀行手續費浮動;金額皆為未稅估算,官方稅務說明明列台灣的 Pay-as-you-go 帳單會加收加值稅(VAT),實際請以帳單為準。動手前也可以用官方的 R2 計算機拉出你自己的數字交叉檢查。
情境一,個人部落格圖床。站上圖片共 50 GB,每月圖片讀取 300 萬次,每月新增上傳 2 萬次。儲存扣掉免費 10 GB,付費 40 GB 乘 0.015 美元是 0.60 美元。讀取 300 萬次在 1,000 萬免費額度內,寫入 2 萬次在 100 萬額度內,流量零。月帳單約 0.60 美元,換算新台幣約 19 元。
情境二,WordPress 網站備份庫。完整備份加差量共 150 GB,每天上傳一次新備份檔,幾乎不讀取。付費儲存 140 GB 乘 0.015 是 2.10 美元,操作量如前述在免費額度內,月帳單約 2.10 美元,新台幣約 67 元。真正的差異在還原那天:把 150 GB 備份整包拉回來,R2 端只收讀取操作費,次數取決於備份切成幾個物件,流量費零。同樣 150 GB 從 S3 讀出,用官方每 GB 約 0.09 美元的流出費率估算,流量費在 4.5 到 13.5 美元之間,取決於當月 100 GB 免費額度還剩多少。備份這件事的隱性成本向來在還原,平時看不出差別,出事那天才知道帳怎麼算。
情境三,流量媒體站。站上影音與圖檔共 1 TB,每月對外流出 6 TB,圖檔讀取 1,200 萬次,寫入 10 萬次。付費儲存約 990 GB 乘 0.015 是 14.85 美元,讀取超過免費的 200 萬次乘 0.36 是 0.72 美元,寫入仍在免費額度內,流量零,月帳單約 15.57 美元,新台幣五百元上下。對照組:6 TB 若走 S3 對外流量,以 AWS 定價頁愛爾蘭區示例的每 GB 0.09 美元估算,扣除帳號共享的每月 100 GB 免費額度後約 531 美元,單月就超過一萬六千元新台幣,還沒算儲存與操作費,實際費率依桶所在區域與帳戶用量而定。這個量級的差距就是零流出費的數學本質。
左右捲動檢視完整表格
| 情境 | 儲存量 | 每月操作 | 對外流量 | R2 月費(美元) |
|---|---|---|---|---|
| 部落格圖床 | 50 GB | 讀 300 萬、寫 2 萬 | 未計 | 約 0.60 |
| WordPress 備份庫 | 150 GB | 寫約數百次 | 趨近零 | 約 2.10 |
| 流量媒體站 | 1 TB | 讀 1,200 萬、寫 10 萬 | 6 TB | 約 15.57 |
三個情境的共通結論:在 R2 的計費結構下,決定帳單的主要是你存了多少東西、做了多少操作,不再是別人從你這裡讀走多少位元組。這對變現邏輯是根本性的友善,也是它與傳統雲端儲存最值得記住分野的地方。
標準與低頻兩種儲存等級:何時該選低頻
R2 目前提供兩種儲存等級:標準 Standard 與低頻存取 Infrequent Access。低頻的設計對象是寫入後很少讀取的資料,官方費率為每 GB 月 0.01 美元,比標準便宜三分之一,代價藏在接下來幾個數字。操作費上調:Class A 每百萬次 9.00 美元、Class B 每百萬次 0.90 美元,而且低頻操作沒有免費額度,照樣按百萬次無條件進位,官方定價頁的示例是一整個月只做 1,000 次低頻寫入,帳單仍按 100 萬次收 9 美元。資料取回每 GB 加收 0.01 美元。最低保存期 30 天,提前刪除、搬移或覆寫仍按滿 30 天計費。生命週期把物件從標準轉入低頻,也計一次 Class A 操作。
判斷公式先看兩端差額:低頻每 GB 省 0.005 美元的存放費,每完整讀回 1 GB 付 0.01 美元取回費,單看這兩項,資料每月被讀取的比率超過大約一半,低頻就開始變貴。但這條損益線沒算操作費與進位規則:低頻操作從第一次起就計費,小量寫入的站光進位費就吃光存放費的節省,實際決策請把儲存量、操作次數與取回量一起丟進官方計算機算過再說。實務上適合的素材很明確:歷史備份封存、法規留存的舊紀錄、上架多年不再曝光的原始檔、年度專案的原始素材。經常被瀏覽的網站圖片就留在標準,別為了省存放費把第一線素材放進取回計價的等級。
還有一個結構性提醒:免費額度只算標準儲存。若你把 8 GB 活躍圖片放標準、20 GB 封存放低頻,前者免費、後者全額計費,帳單上會出現一個反直覺的數字。混合使用的站,記得把封存與活躍素材分桶放,對帳時才不會眼花。

開通前要知道的帳務規則
R2 的開通流程比多數人預期多一步。官方入門文件列的步驟是進到控制台的 Storage & databases 分類,選 R2,然後完成一次結帳流程把 R2 訂閱加到帳號。重點在這個結帳:R2 本身沒有月費,採用量計費,但啟用需要帳號上有有效的付款方式。官方帳務文件列出的方式包括 Visa、Mastercard、American Express 與 PayPal 等國際通行的選項,還有 Discover、Apple Pay、Google Pay、Stripe Link 與銀聯卡,台灣帳戶實際能不能過,以結帳頁與發卡銀行的驗證結果為準;預付卡與禮品卡因為沒有帳單地址,可能無法通過驗證。
帳務文件還交代了兩個與付款失敗有關的規則,值得抄進維運筆記。Cloudflare 可能在計費週期中的任何時間點預先授權你的信用卡,確認額度足以覆蓋已累積的費用,這只是一筆暫時性的授權,不是請款。付款驗證失敗時,R2 會進入限制狀態:桶的存取被擋下、請求回傳錯誤,但資料本身仍然安全;若在 30 天內沒有更新付款方式,資料可能被刪除。把 R2 當備份庫的站,請把付款卡的有效期與帳單提醒一起列進巡檢清單,別讓備份死在一張過期的卡片上。
計費週期以 30 天為單位,帳單日對齊你啟用該訂閱的日期,不是帳號註冊日,時區採 UTC 計算。免費額度隨每月用量結算,帳單明細上會看到額度折抵的過程。費用有疑慮的月份,先看用量曲線再看費率,疑問多半出在用量成長,不是算錯錢。
公開檔案的兩條路:自訂網域與 r2.dev
桶建立後預設是私有的。公開桶說明文件寫得明確:桶永遠不會預設公開,啟用公開存取一律需要使用者明確授權。要把物件直接分享給訪客,有兩條路,待遇天差地遠。
第一條是 Cloudflare 代管的 r2.dev 測試網址。在桶設定裡的 Public Development URL 區塊點啟用,輸入 allow 確認,就會拿到一組 pub 開頭的公開網址。官方對它的定位寫得一板一眼:這個端點供非正式環境流量使用,經過 r2.dev 的公開存取有速率限制,只應用於開發目的。實際的量尺在官方限制頁有描述:r2.dev 採浮動的速率限制,請求量達到每秒數百次的量級就會被節流,回 429 Too Many Requests,連頻寬吞吐都可能被限縮。把正式網站掛在 r2.dev 上等於自縛手腳,官方還特別提醒不要建 CNAME 指到 r2.dev,那是不受支援的存取路徑。
第二條是自訂網域,正式環境的正解。在桶的設定頁選 Custom Domains、加入網域,系統自動補一筆 CNAME 記錄,狀態從初始化轉為生效通常只需幾分鐘。前提條件只有一條但很硬:網域必須以 zone 的形式加在你自己的 Cloudflare 帳號裡,與桶同帳號;若網域 DNS 託管在別處,得先搬進 Cloudflare,Business 與 Enterprise 方案另有 partial CNAME setup 的代管模式可評估,免費與 Pro 方案不適用。一個桶最多可以掛 100 個自訂網域。網域之外的附加價值才是重點:WAF 自訂規則、快取、存取控制、Bot Management 這些防護能力,官方明載只有掛在自訂網域後面才設定得了。要注意兩條路是獨立開關,若在自訂網域上啟用了 WAF 或 Access,記得把 r2.dev 網址關掉,桶才不會從後門繼續裸露。

用自訂網域把 R2 變成免運費的檔案分送網
自訂網域真正迷人的地方,是它讓 R2 接上 Cloudflare 的快取體系。桶的內容經由自訂網域提供時,可以套用 Cloudflare Cache:預設只快取部分副檔名的靜態檔,想在整個桶快取所有檔案,官方建議設一條 Cache Everything 的頁面規則,並搭配 Smart Tiered Cache 提高命中率。換句話說,同一家公司的邊緣節點既當你的儲存出口又當你的快取層,命中快取的請求根本不會打到桶,連 Class B 操作費都省了。
把它跟 CDN 的概念對齊:CDN 快取的是你原始伺服器的回應,R2 加自訂網域則是直接把儲存嫁接進邊緣網路,兩者常搭配使用,前者保護動態站、後者托住靜態檔。CDN 的完整原理與挑選邏輯,站內的CDN 指南有專文拆解,這裡只需要記住分工:R2 負責放檔案,Cloudflare 快取負責把檔案推到離訪客最近的節點。
快取策略對圖床情境有實質的帳務含義。命中快取的請求不產生 Class B 操作,這代表熱門圖片的讀取成本貼近於零,冷門長尾才落到桶上計費。想讓快取表現穩定,物件金鑰的命名要有紀律:內容改了就換新檔名,別覆寫同名物件後期望邊緣自動轉向,快取鍵對 URL 一視同仁。 Cache Everything 上線後,記得在瀏覽器開發工具裡確認回應標頭的快取狀態,命中與否一眼可辨,別只是設定完就走人。

一個小但常見的遺憾:公開桶不支援在網域根路徑列出桶內所有檔案,訪客打開你的自訂網域根路徑不會看到檔案清單。但別把不列清單當成防護:知道物件網址的人照樣能存取,敏感檔案該留在私有桶或另加存取控制;想要檔案總管行為的人,用本地端工具自行檢視桶內容。
S3 相容的真實程度:能直接接什麼、什麼會踩空
講完門面,回頭看程式面。R2 的 S3 端點格式是 https://你的帳號 ID.r2.cloudflarestorage.com,區域值固定 auto,遇到工具強迫填區域時,官方說明空字串與 us-east-1 都會代換成 auto。 AWS 官方 SDK、AWS CLI、rclone、boto3 這些講 S3 語言的工具,改端點、金鑰、區域三個參數後大多直接可用,這也是官方入門文件列出的使用方式:Workers API、S3 相容 SDK、命令列工具或控制台四選一。
相容是核心子集的相容,不是無縫。依 2026 年 7 月底更新的相容性文件,物件層級的核心操作完整實作:上傳、下載、複製、刪除、批次刪除、列出物件、分段上傳全在,條件請求、Range 斷點續傳、Content-Type 與 Cache-Control 這類系統中繼資料也都支援。桶層級實作了 CORS 與生命週期設定,這兩個對網站工作者最有感,前者管瀏覽器直接上傳,後者管自動到期刪檔。
沒有實作的清單也要掃一眼,踩空通常發生在這裡。桶政策、物件與桶的標籤、版本控制、靜態網站託管設定、跨區複製、事件通知、物件鎖定、ACL 這些 S3 同名 API 全數不在支援範圍。留意這說的是 API 不相容,不是 R2 沒有對應能力:事件通知有接 Cloudflare Queues 的原生作法,桶鎖定也有原生規則,只是不能拿 S3 的同名 API 直接移植,從 S3 搬過來的腳本若依賴這些功能,搬之前要逐項盤點替代方案。細節差異還有兩個值得記:列出物件建議用 ListObjectsV2 而非舊版;分段上傳重傳同一個分段號碼會直接覆蓋舊內容,重試失敗時原始分段會遺失,要重新上傳該分段。儲存等級參數只認 STANDARD 與 STANDARD_IA 兩個值。
給 WordPress 工作者的最短翻譯:備份外掛與圖床外掛用的是上傳、下載、列出、刪除這幾個核心動作,全數在相容範圍內,主流外掛接起來通常順利,但外掛用了哪些 API 不在官方保證裡,上線前仍要實測一次上傳與還原。會踩到相容性問題的,多半是自架的維運腳本或依賴進階 S3 功能的企業流程。
預簽 URL:把私有檔案安全地交給瀏覽器
桶保持私有時,你仍會遇到需要臨時分享單一檔案的場合:客戶下載一組成品檔、表單上傳的使用者頭像、限時有效的報表連結。S3 體系的標準答案是預簽 URL,R2 完整支援。它的原理是你在伺服器端用自己的存取金鑰對某個物件、某個操作、某段效期簽出一組帶簽章的網址,拿到網址的人在效期內可以直接對該物件做那一個操作,不需要知道你的金鑰。
官方預簽 URL 文件給的細節:可授權的操作有讀取、上傳、查詢中繼資料、刪除四種,表單式的 POST 上傳不在支援之列;效期最短 1 秒、最長 7 天;簽章在你的伺服器當下完成,過程不與 R2 通訊;AWS CLI 的 presign 命令只支援讀取。兩條使用守則要刻在腦裡:預簽 URL 只能搭配 S3 端點使用,掛不上自訂網域;官方直白地說,把它當持有者權杖對待,網址流出去就等於權限流出去,效期設短的習慣比任何補救都可靠。

實務範例最好懂。會員下載區的報表檔,後端在會員點擊時現簽一組 5 分鐘效期的預簽 URL,效期一到自然失效;要當成單次連結使用,得由應用端自行控管,因為預簽 URL 在效期內可以重複使用。這仍比把桶開公開安全,比自建代理下載省工。前端直傳頭像,後端只簽上傳用的預簽 URL 給瀏覽器,桶先設好允許該網站來源與 PUT 方法的 CORS 規則,檔案就能從使用者的電腦直上 R2,不經過你的主機頻寬,這是它對流量架構最大的貢獻。
WordPress 圖片外接:把媒體庫搬到 R2
落地情境一:圖片外接,社群裡常見的說法是圖床。原理是把媒體庫的檔案送上 R2 桶,網頁裡的圖片網址改指到桶的自訂網域;多數外掛還提供移除主機副本的選項,確認外接與還原正常之後打開它,磁碟空間才真正釋出,只同步不刪本機副本的話,鬆綁的只有頻寬,空間照舊。 WordPress 生態有現成的 S3 相容外接外掛,填入 R2 的端點、存取金鑰與桶名就能開工,通常不需要寫程式。
這個架構的帳是三面一起算的。主機面:媒體庫幾十 GB 的站,可以退租高一階的主機方案,或把空間留給快取與暫存。流量面:圖片請求改走 R2 的零流出費線路,主機頻寬留給頁面本身。速度面:自訂網域掛上 Cache Everything 後,圖片由邊緣節點回應,對台灣訪客的實際延遲取決於快取命中與節點距離,與原本主機的位置相比孰優,上線後實測最準。三面加起來,才是一張完整的效益表。
順序別弄反:先把圖片本身處理輕,再考慮放哪裡。一張 4 MB 的原圖放到邊緣節點,下載時間依然傷害 LCP;壓縮、選對格式、控制尺寸是第一步,儲存與快取是第二步,順序顛倒只是把問題搬到更貴的地方。圖片從產製到交付的完整流程,站內的WordPress 圖片優化指南有系統性的整理,這裡的建議是把它當外接前的必修課。

外接後有兩個維運責任要接手。搬移後媒體庫的刪除與改名要確認同步行為,避免主機與桶內容飄移;金鑰外洩的防護則靠桶權限最小化,R2 支援桶範圍的存取權杖,不要把帳號級金鑰交給任何外掛。這兩件事在單機時代由主機商的圖形介面隱形處理,外接後就是你的工作。
備份落地:比你想的更划算的異地副本
落地情境二:備份目的地。備份的鐵則是異地存放,副本要離開主機所在的機器與帳號,而物件儲存正是最常見的異地端。R2 在這個角色上有三個結構性優勢:存放費低且有 10 GB 免費額度,小站備份常常整包免費;寫入額度 100 萬次對每日備份線綽綽有餘;最關鍵的還原日零流量費,前面情境二算過,150 GB 拉回來的流量成本是零,換成按 GB 收流出費的服務,就是那筆 4.5 到 13.5 美元的瞬間支出。備份目的地的比較框架,站內的WordPress 備份外掛評比把雲端硬碟、物件儲存與託管備份服務的計費邏輯攤開對照過,結論一致:算總帳要看保存天數與演練下載量,不是只看單價。

實作上,主流備份外掛都支援 S3 相容的遠端儲存,R2 填法就是端點改 r2.cloudflarestorage.com、區域 auto 或 us-east-1、金鑰一組;站內的UpdraftPlus 教學示範遠端儲存的設定與還原流程,R2 專屬的端點與區域欄位再對照官方文件填入。桶開起來之後,把生命週期規則設成 30 天或 60 天自動刪除過期備份,這是 S3 相容清單裡正式支援的功能,讓備份庫自己保持紀律,不必靠人工清檔。刪除操作免費,這套自動清理不產生任何費用。
封存型的舊備份可以考慮放低頻等級,但記得幾個代價:操作無免費額度且按百萬次進位、取回收費、30 天最低保存期。每天滾動的近期備份留標準,超過指定天數的自動轉為低頻等級,是折衷的做法,也是低頻等級存在的意義;作法是在同一個桶上設生命週期規則讓物件屆齡轉換,R2 的規則不會把物件搬到另一個桶,要跨桶歸檔得自己安排搬移。

從 S3 搬家:Super Slurper 與 Sippy
已經把資料放在 S3 的人,官方定價頁備了兩件搬家工具的說明,都免費使用,只收搬運過程產生的 Class A 操作費。 Super Slurper 是批次搬遷工具,把既有桶的物件拉進 R2,但有三種會被略過:大於 1 TB 的物件、S3 Glacier 封存等級的檔案(Instant Retrieval 除外)、以及經 Intelligent Tiering 放進 Deep Archive 的檔案,略過內容會記在搬遷日誌,這些要另行複製。計費細節是小於 100 MiB 的物件各算一次操作,更大的走分段上傳按分段計。 Sippy 是串接模式,在來源與 R2 之間當即時代理,請求邊走邊搬,適合不能停機的線上服務,小於 200 MiB 的物件單次操作計費。來源端服務自己的流量與操作費照舊計算,搬家預算要把兩邊都算進去。
搬遷的實務節奏建議分三步:先搬冷資料驗證完整性,再把新寫入導向 R2,最終退掉舊端的讀取路徑。中間任何一步出問題,回頭的代價主要是時間:R2 端重搬只花寫入與儲存費,但來源端的流出與請求費會再收一次,重搬前先抽樣驗證完整性,別把零流出費誤讀成搬家全程免費。

台灣網站的資料位置與延遲
R2 沒有讓你指定單一國家的節點,資料位置用兩層機制表達。預設的自動模式,資料位置說明的原文是在建立桶的請求發起時,從距離呼叫者最近的可用區域挑一個位置;若想更明確,建立桶時可以給位置提示,亞太區的代碼是 apac,另有北美東西兩區、東西歐與大洋洲可選。從台灣發起建立,自動模式會就近挑亞太區的可用節點,這是就近選址的結果,不是區位保證。
位置提示的官方定位要讀仔細:best effort,盡力而為,不是保證。它的用途是效能最佳化,把常更新的內容放在離使用者近的地方,而不是資料主權承諾。兩個附帶規則容易被忽略:提示只在桶第一次以該名稱建立時生效,刪掉重建同名桶會沿用原始位置;需要法定落地保證的組織,R2 另有司法管轄桶,目前提供 eu、us 與 fedramp 三種,且建立後不可變更,一般商業網站用不到,知道有這條路即可。
對台灣訪客的實際延遲,由儲存位置與快取命中兩層決定。未命中快取的請求回源到桶的所在區域,命中快取的請求由最近的邊緣節點回應。這也是前面不斷強調自訂網域加 Cache Everything 的原因:熱內容的位置效應被快取抹平,冷內容才吃儲存區域的距離。上架後用真實用戶監測驗證,別靠體感。
限制與地雷清單
官方限制頁(2026 年 6 月更新)的完整數字值得一次看齊。物件層:單一物件上限 5 TiB,精確說是 4.995 TiB;單次請求上傳上限 5 GiB,官方註腳的精確值是 5 GiB 減 5 MiB(約 4.995 GiB),超過走分段上傳,最多 10,000 個分段;物件金鑰最長 1,024 bytes,中繼資料上限 8 KiB。帳號層:桶數上限 100 萬個,單桶容量與物件數無上限。
速率限制是四個數字:每個桶的桶管理操作每秒 50 次,指的是建桶刪桶列桶這類管理動作,不含物件讀寫;對同一個物件金鑰的併發寫入每秒 1 次,超過回 429,這對多行程同時寫同一個檔案的腳本是最常見的撞牆點;Cloudflare REST API 每帳號每五分鐘 1,200 次請求,只計這條管理用的 REST API,物件的高速讀寫走 S3 相容 API 或 Workers API,不吃這個額度;r2.dev 公開網址的速率限制是浮動的,達到每秒數百次的量級就會被節流,且吞吐也可能被限。對照一般網站流量型態,前述數字很少構成瓶頸,會踩到的幾乎都是自動化腳本的併發設計。
再補三個容易漏看的坑。低頻等級的 30 天最低保存期,是按計費不是按存在,短生命週期的暫存檔放低頻等於白繳保底。公開桶在網域根路徑不提供檔案清單,想要目錄頁要自己生成索引檔。用 Workers 等 Cloudflare 上的計費服務去讀桶時,那些服務自身的費用照計,零的只有 R2 這一段的流出費。
左右捲動檢視完整表格
| 項目 | 限制 | 備註 |
|---|---|---|
| 單一物件大小 | 最大 5 TiB | 單次請求實際上限約 4.995 GiB(5 GiB 減 5 MiB),更大走分段上傳 |
| 分段上傳 | 最多 10,000 段 | 重傳同段號會覆蓋,失敗需重傳該段 |
| 物件金鑰長度 | 1,024 bytes | 中繼資料另計,上限 8 KiB |
| 同金鑰併發寫入 | 每秒 1 次 | 超過回 429 |
| 桶管理操作 | 每桶每秒 50 次 | 不含物件讀寫 |
| Cloudflare REST API | 每帳號每五分鐘 1,200 次 | 僅計 REST API 呼叫,不含 S3 與 Workers API |
| r2.dev 公開網址 | 浮動限制,約每秒數百次請求 | 逾限節流回 429,僅供開發用途 |
| 自訂網域 | 每桶最多 100 個 | 需與桶同帳號的 zone |
誰適合上 R2,誰先緩一緩
適合的輪廓很清晰。媒體量大的內容站與部落格,圖片外接後同時解決空間、流量、速度三件事。需要異地備份的 WordPress 站,零流出費讓還原演練不再是成本考量。副業專案與獨立開發者,免費額度涵蓋開發期全部用量,上線後按量成長。在 Cloudflare 生態裡組合服務的團隊,R2 與 Workers、D1 共用一套帳號與計費,接線成本最低,站內對 ChatGPT Sites 的解析就示範過用 R2 放檔案、D1 放中繼資料的分工模式,可見ChatGPT Sites 指南的儲存段。
緩一緩的名單也具體。網域 DNS 不在 Cloudflare、也不打算搬的人,自訂網域這條正路走不通,只剩開發用的 r2.dev,不值得。重度依賴 S3 進階功能的既有流程,桶政策、版本控制、事件通知缺一不可的,遷移前要先找到替代設計。需要單一國家落地保證的合規場景,R2 的位置提示不構成承諾,走司法管轄桶再評估。還有一種是把 R2 當靜態網站託管用的念頭,桶網站託管設定不在支援清單裡,靜態站該用專門的託管服務。
對已經在 Cloudflare 上經營網站的人,還有一層生態理由:同一個控制台裡同時存在 DNS、快取、WAF 與你的檔案儲存,設定之間可以互相印證。 AI 流量政策、快取規則、儲存桶的存取紀錄放在同一個地方排查,維運心智負擔明顯低於跨三家廠商拼湊;同一套控制台管理機器人政策的實際操作,站內AI 爬蟲封鎖設定一文從另一個側面示範過。
上路前的行動清單
第一項,清點檔案體積與成長速度。媒體庫佔了多少 GB、每月成長多少、備份檔單檔多大,這三個數字決定你落在費率表的哪一段,也決定免費額度能吃掉幾成帳單。
第二項,確認網域託管位置。想在 Cloudflare 用自訂網域,網域必須以 zone 形式加在同帳號,DNS 在別處的先搬,這一步影響公開分享與快取兩大功能。
第三項,準備付款方式。國際信用卡或 PayPal 擇一,預付卡與禮品卡可能因沒有帳單地址而無法通過驗證。把卡片有效期寫進維運日曆,理解 30 天付款寬限的規則,這是資料安全的下限保險。
第四項,決定桶結構。活躍素材與封存分桶、圖床與備份分桶,位置提示建桶時就選 apac,因為事後不可改。生命週期規則上線當天就設,別等桶變成垃圾山。
第五項,最小權限發金鑰。給外掛的鑰匙用桶範圍權杖,不用帳號級金鑰;預簽 URL 效期按需求給最短,把它當持有者權杖管理。
第六項,上線後驗證三件事。回應標頭的快取命中狀態、帳單頁的用量曲線、還原演練的真實速度。三項都看過,R2 對你才從便宜變成正確。
回頭看整篇的核心:R2 把物件儲存的成本結構從流量本位改成存量本位,免費額度讓小站無痛起步,自訂網域接上快取後,它同時是倉庫與分送網。把圖片與備份這類非動態檔案移出主機,主機回歸跑程式的本業,這個分工對幾乎所有成長中的網站都成立,差別只在什麼時候動手。