Featured image of post 使用 Cloudflare R2 與 PicList 建立零流量成本圖床全攻略

使用 Cloudflare R2 與 PicList 建立零流量成本圖床全攻略

本指南詳解如何結合 Cloudflare R2 儲存服務與 PicList 工具,透過 WebP 轉換、CDN 快取優化及 WAF 安全設定,建立一個具備 10GB 免費空間且免流量費的個人圖床系統。

過去我一直使用 vgy.me 作為圖床,老實說沒什麼大缺點,只要不碰觸兒童保護相關法規,基本上什麼圖都能上傳。然而最近它卻頻繁出現 Cloudflare 錯誤,導致圖片無法正常顯示,就連官方也坦言問題出在 Cloudflare 那邊,自己無能為力。

既然如此,只好另尋穩定的替代方案。找了一圈之後,能同時滿足「穩定」、「快速」、「不隨意刪檔」這三個條件的,付費服務中只剩下原本的 SM.MS(現已更名為 S.EE)。不過它改名後已取消終生方案,改為純訂閱制,這樣的話我還不如直接上 Cloudflare R2 或自架。幾番考量後,我決定採取混搭策略:不常變動的圖片(例如部落格的配圖)放進 R2,短暫分享或不適合長期存放的圖片則用自架的 Zipline 處理——它支援設定自毀時間或閱覽次數上限,到期自動刪除,管理起來相當方便。

設定重點與注意事項

  • 基礎架構:以 Cloudflare R2 作為儲存後端,透過 PicList 用戶端以 S3 協定上傳檔案,並綁定自訂網域以啟用 CDN 功能。

  • 費用控管

    • R2 免費額度為:每月 10 GB 儲存空間、100 萬次 A 類操作、1,000 萬次 B 類操作。
    • 建議在 Cloudflare 後台設定用量通知(Notifications),在接近免費上限時提早發送 Email 預警,避免意外超額。
  • 快取優化(Cache Rules)

    • 設定當主機名稱符合自訂網域時,強制啟用 Edge TTL(1 個月)Browser TTL(1 個月)
    • DNS 記錄必須設為 橘雲(Proxied) 狀態,快取規則才會生效。
    • 此優化能大幅降低 B 類操作次數:圖片一旦被讀取過,就會快取至邊緣節點,後續請求直接由快取回應,不再向 R2 計費。
  • PicList 自動化設定

    • 格式轉換:上傳前自動將圖片轉為 WebP 格式(品質 75),有效節省儲存空間。
    • 命名規則:目前會自動以 {md5} 作為檔名,嘗試過高級重命名設定仍無效,暫時維持現狀。
    • 儲存路徑:設為 img/{year}/{month}/,依年月分資料夾整理。
  • 綁定信用卡(重要)

    • R2 採後付費模式,需綁定信用卡而非預先儲值,理論上費用可能失控。不過以個人用量來說,在真正碰到付費門檻之前,流量通常早就吸引廣告商上門了,所以不必過度擔心。
    • 記得開啟 Cloudflare 的機器人防護(Bot Fight Mode),防止爬蟲大量消耗免費額度。

參考連結

免費圖床不求人:用 Cloudflare R2 + PicGo 打造穩定圖床方案手把手教你用 Cloudflare R2 - 掘金