whoops.

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

Cloudflare R2,圖片備份分流:網站主機、媒體檔案、異地備份
Cloudflare R2 讓網站程式與媒體、備份檔案分開管理;公開存取與備份權限仍需各自設定。

Cloudflare R2 是 S3 相容的物件儲存,標準儲存每 GB 月 0.015 美元、對外流出流量不收費,每月免費額度含 10 GB 儲存與 100 萬次 Class A、1,000 萬次 Class B 操作。整理免費額度細節、三種網站規模費用試算、低頻儲存等級取捨、自訂網域與 r2.dev 差異、S3 相容範圍,以及 WordPress 圖片外接與備份兩種落地情境。

本頁目錄

網站經營到某個規模,檔案就會開始跟你討債:圖片把主機空間塞滿、備份壓縮檔找不到地方放、影片想吃掉你所有的頻寬。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。

物件用 key 定址,不靠資料夾:儲存桶、物件 key、檔案本體
R2 在儲存桶內以 key 識別物件;路徑中的斜線可用來分組,並不建立真正的資料夾。

因為介面夠簡單,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 網址關掉,桶才不會從後門繼續裸露。

兩個公開入口,要分別管理:自訂網域、WAF/Access、R2 桶、r2.dev、獨立開關
自訂網域可套用防護;若 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 上線後,記得在瀏覽器開發工具裡確認回應標頭的快取狀態,命中與否一眼可辨,別只是設定完就走人。

命中快取,就不必回源讀桶:訪客請求、邊緣快取、R2 儲存桶
經自訂網域提供內容並設定快取後,命中可由快取回應;未命中的讀取才需要回源至 R2。

一個小但常見的遺憾:公開桶不支援在網域根路徑列出桶內所有檔案,訪客打開你的自訂網域根路徑不會看到檔案清單。但別把不列清單當成防護:知道物件網址的人照樣能存取,敏感檔案該留在私有桶或另加存取控制;想要檔案總管行為的人,用本地端工具自行檢視桶內容。

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 端點使用,掛不上自訂網域;官方直白地說,把它當持有者權杖對待,網址流出去就等於權限流出去,效期設短的習慣比任何補救都可靠。

預簽網址,只授權指定範圍:指定物件、指定操作、到期失效
預簽 URL 綁定物件、操作與效期,持有人可在有效期間使用;它不是自動限用一次的連結。

實務範例最好懂。會員下載區的報表檔,後端在會員點擊時現簽一組 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 的規則不會把物件搬到另一個桶,要跨桶歸檔得自己安排搬移。

生命週期,在同一個桶轉換:同一個 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 端重搬只花寫入與儲存費,但來源端的流出與請求費會再收一次,重搬前先抽樣驗證完整性,別把零流出費誤讀成搬家全程免費。

搬遷資料,有兩種觸發方式:Super Slurper、批次搬入、Sippy、請求帶動搬入
Super Slurper 適合批次搬移既有物件;Sippy 隨請求逐步補入 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 把物件儲存的成本結構從流量本位改成存量本位,免費額度讓小站無痛起步,自訂網域接上快取後,它同時是倉庫與分送網。把圖片與備份這類非動態檔案移出主機,主機回歸跑程式的本業,這個分工對幾乎所有成長中的網站都成立,差別只在什麼時候動手。

常見問題

Cloudflare R2 的免費額度有多少?每個月會重置嗎?
每個帳號每月附贈 10 GB 標準儲存、100 萬次 Class A 操作與 1,000 萬次 Class B 操作,對外流量本來就不收費。額度按月重新計算、不累積,也不必額外申請。要注意免費額度只適用標準儲存,低頻等級的儲存與操作從第一次起就計費,混合使用時建議分桶放置方便對帳。
R2 真的完全不收對外流量費嗎?
經過 R2 本身的讀取與下載,流出流量計價為零,這是產品結構而非限時優惠。但官方附註提醒,若透過其他需計費的服務連到儲存桶,例如 Workers 這類本身有費率的產品,該服務的費用照常計算。零的只有 R2 這一段的流出費,操作與儲存用量仍按費率表計。
不會寫程式,能把 WordPress 的圖片和備份放上 R2 嗎?
可以。 WordPress 生態的 S3 相容外接外掛與備份外掛都走核心 S3 操作,這部分 R2 完整支援,填入端點、存取金鑰與桶名就能開始使用,上線前再實測一次上傳與還原即可,R2 也支援桶範圍的存取權杖可做權限最小化。需要動手寫程式的場景只剩預簽 URL 這類自訂流程,一般圖床與備份設定用圖形介面就能完成。
r2.dev 的公開網址可以直接拿來當正式網站的圖床嗎?
不建議。官方明載 r2.dev 端點供非正式環境流量使用,採浮動速率限制,請求量達每秒數百次的量級就會被節流回 429,連頻寬吞吐都可能受限,對外也沒有快取與 WAF 防護。正式環境應把掛在同帳號 Cloudflare zone 的網域設為桶的自訂網域,再套 Cache Everything 頁面規則接上邊緣快取。
信用卡付款失敗,R2 裡的資料會立刻被刪掉嗎?
不會立刻刪。付款驗證失敗時 R2 可能進入限制狀態:桶的存取被擋下、請求回傳錯誤,但資料本身仍然安全,官方給最多 30 天期限更新付款方式,逾期資料可能被刪除。啟用 R2 需要帳號上有有效付款方式,台灣帳戶以結帳頁與發卡銀行驗證為準,預付卡與禮品卡可能因無帳單地址而無法通過驗證。
R2 有台灣或亞洲區的儲存位置可以選嗎?
沒有單一國家節點可選。預設的自動模式會在建立桶時從距離發起者最近的可用區域挑位置;想更明確可在建桶時給位置提示,亞太區代碼是 apac。位置提示是盡力而為而非保證,且只在桶首次建立時生效,事後不可改。需要法定落地保證的組織可評估司法管轄桶,一般網站用不到。
R2 和 AWS S3 完全相容嗎?搬家要改很多設定嗎?
相容的是核心子集:上傳、下載、複製、刪除、列物件、分段上傳、CORS 與生命週期設定都在,多數工具改端點、金鑰、區域三個參數就能接上,區域填 auto 或 us-east-1 皆可。桶政策、版本控制、事件通知、物件標籤、ACL 等 S3 進階 API 不在支援範圍(部分能力如事件通知有 R2 原生替代,需改接原生作法),依賴這些的腳本要先盤點替代方案;既有 S3 資料可用官方的 Super Slurper 批次搬遷或 Sippy 串接搬遷,工具免費、只付搬運產生的操作費,大於 1 TB 的物件與部分封存等級檔案會被略過須另行搬移。

Whoops 巫普斯科技有限公司

專注技術 SEO、GEO/AEO 與 AI 搜尋實務。本站文章以可驗證資料、公開來源與實作觀察整理而成。

關於 Whoops編輯守則服務內容

想把這篇的方法用在自己的站上?

SEO 健檢、GEO/AEO 引用優化、網頁設計諮詢——把文章裡的方法落地到你的網站。