← 返回部落格

你的 CDN 和儲存桶帳單,有多少是白付的

本文不引用任何「行業平均」數字。文中的壓縮數據都來自我們自己跑的實測,成本計算給的是公式,代入你自己帳單上的單價就能算出結果。 每個月看雲帳單,大多數人只看總數:比上個月多了一點,還在預算內,就這麼過去了。 但如果把帳單展開,按產品拆開看,很多網站、小程式、內容平台會發現,排在前面的往往就兩項:…

分享

本文不引用任何「行業平均」數字。文中的壓縮數據都來自我們自己跑的實測,成本計算給的是公式,代入你自己帳單上的單價就能算出結果。

每個月看雲帳單,大多數人只看總數:比上個月多了一點,還在預算內,就這麼過去了。

但如果把帳單展開,按產品拆開看,很多網站、小程式、內容平台會發現,排在前面的往往就兩項:

  • 物件儲存:按 GB·月 收儲存費
  • CDN / 公網流量:按 GB 收下行情量費

而這兩項裡,最佔地方的通常是圖片。

問題是,這些圖片裡有相當一部分位元組,使用者根本看不出來,你卻每個月都在為它們付錢。


一、「上傳時壓過了」,不代表壓夠了

很多團隊會說:「我們上傳的時候壓過了。」

我們專門測過這種情況。樣本是一個允許使用者上傳圖片的網站,入庫時已經自己做過一輪常規壓縮:78 個資料夾,4624 張圖片,總共 1.41 GB。

體積 相對原始
網站已壓縮過的原始檔 1.41 GB —
打包成 zip 1.41 GB -0.2%
ImgZilla 再壓縮 0.75 GB -46.8%

在「已壓過」的基礎上,又省下了近一半。 而且 4624 張裡每一張都還能繼續壓,沒有一張是「已經到底、直接跳過」的。

原因不複雜:大多數入庫壓縮只是統一設一個品質參數,或者限制一下尺寸,屬於偏保守的一次性處理,遠沒有把每種格式的編碼空間用完。

如果你的圖片庫是相機直出、設計稿匯出,或者營運直接上傳的原始檔,空間就更大了。我們在 32188 張相機直出 JPEG 上測過,整體體積減少了 76.8%。


二、儲存費是加法,流量費是乘法

這是最容易被忽略的一點。

  • 儲存費:一張圖存在桶裡,按它的體積每個月收一次錢
  • 流量費:一張圖每被打開一次,就按它的體積再收一次錢

所以一張首頁 banner 多出 300 KB 的無效位元組,在儲存帳單上幾乎看不出來,但每天被打開 10 萬次,流量帳單上就是每天多出約 29 GB。

圖片越熱門,白付的錢越多。 而最熱門的圖,恰恰是首頁圖、商品主圖、文章頭圖這些最常被「隨手上傳原始檔」的位置。


三、算一筆你自己的帳

不用相信任何人的估算,拿出你上個月的帳單,代入下面兩個公式:

每月可省儲存費 ≈ 圖片總儲存量(GB) × 壓縮率 × 儲存單價(元/GB·月)
每月可省流量費 ≈ 圖片月下行情量(GB) × 壓縮率 × 流量單價(元/GB)

壓縮率可以先保守按 40% 估算(比我們在「已壓縮過」樣本上測出的 46.8% 還低一些),等跑完自己的圖片再換成實際數字。

舉個演示用的例子(單價是假設值,請換成你帳單上的數字):

項目 數值
圖片儲存量 500 GB
圖片月下行情量 10 TB
儲存單價(假設) 0.12 元/GB·月
流量單價(假設) 0.20 元/GB
  • 儲存:500 × 40% × 0.12 ≈ 24 元/月
  • 流量:10240 × 40% × 0.20 ≈ 819 元/月

可以看出來,真正的大頭在流量。儲存省的是零頭,流量省的才是正經錢。而且這筆錢是每個月都在付,圖片不處理就一直付下去。

還有一些帳單上看不到的收益:頁面載入更快,行動端使用者少花流量,LCP 指標更好看,小程式主包更容易壓到額度以內。


四、為什麼明知道該壓,卻一直沒人去壓?

我們問過不少開發者和站長,答案基本就三個:

1. 怕改路徑。
傳統線上壓縮工具要「上傳 → 下載 → 改名 → 替換 → 改程式碼裡的引用」,幾千張圖的專案,沒人敢動。

2. 怕畫質出問題。
壓完被設計、營運或者老闆說「圖糊了」,誰也不想背這個鍋。

3. 太麻煩。
目錄一層套一層,一張張處理不現實,寫腳本又要調參數、處理各種格式。

ImgZilla 就是為了解決這三件事做的:

  • 原地壓縮:壓完直接替換原始檔,檔名、目錄結構完全不變,程式碼裡的引用一行都不用改
  • 視覺無損:PNG、SVG 是真正的無損;JPEG、WebP、AVIF、HEIC 按每種格式單獨調參,控制在肉眼分辨不出來的範圍內。內建左右分屏對比,可以放大到實際像素自己檢查
  • 拖一個資料夾進去就行:遞迴處理所有子目錄,不用挑檔案,不用調滑塊
  • 全部本地處理:內部素材、未發布的商品圖都不用上傳到第三方伺服器

五、給儲存桶「瘦身」的實際流程

如果你的圖片已經放在物件儲存裡,流程大概會是這樣:

  1. 同步到本地:用 rclone、ossutil、coscmd、aws s3 sync 這類工具,把圖片目錄拉到 Mac 上
  2. 先備份一份:放心,這是好習慣,不是因為工具不可靠
  3. 拖進 ImgZilla:整個目錄拖進去,等它跑完
  4. 同步回儲存桶:用同一個工具覆蓋上傳,路徑不變
  5. 刷新 CDN 快取:對圖片目錄做一次目錄刷新,讓邊緣節點拿到新檔案

第 5 步別漏了。不刷新的話,CDN 節點會繼續分發舊檔案,流量帳單要等快取過期以後才會降下來。


六、誠實說明

  • ImgZilla 目前只有 macOS 版(需要 macOS 12.3 及以上),沒有 Windows 版
  • 除了 PNG 和 SVG,其他格式是視覺無損,不是像素級無損。如果你的業務要求像素完全不變(比如醫學影像、需要做像素比對的素材),請不要對這類檔案做重編碼
  • 壓縮率因圖而異。我們實測的單張壓縮比從 32% 到 86% 都有,建議先挑一個目錄試跑,看實際數字再決定

最後

雲廠商不會提醒你圖片可以再小一點,帳單上也不會單獨列一行「無效位元組」。

但它就在那裡,每個月按 GB 計費,每被存取一次就再收一次。

把圖片目錄拖進 ImgZilla 跑一遍,下個月對比一下帳單。

👉 下載 ImgZilla:https://imagetool.app/ImgZilla

想讓圖片更小更快?

下載 ImgZilla,在本機完成壓縮,圖片不會上傳雲端。