說實話,圖床這東西剛搭起來的時候,大家關心的都是介面好不好看、上傳快不快,等到圖片數量破了幾萬張,才會發現真正的坑在儲存這一層。總裁圖床開源版本身支援本地加上十幾種物件儲存(S3、阿里 OSS、騰訊 COS、七牛、又拍、自建 MinIO 等),選擇多是好事,但也代表你得先想清楚自己要的是什麼——省錢?穩定?還是完全掌控?這三件事很難同時滿足。
先算清楚你的圖片體量
我習慣先做一個粗估。假設是個人部落格或素材站,每天上傳 50 張圖,開啟自動轉 WebP 並把品質壓到 80 左右,單張大約落在 80~150KB 之間。一年下來也就 2~3GB,這種量級用本地儲存完全沒問題,一顆 40GB 的 VPS 硬碟撐好幾年。
但如果是電商商品圖或對外運營的圖床站,情況完全不同。原圖要保留、縮圖要生成、還可能加水印產出多份衍生檔案,一張圖實際佔用可能是原始體積的 2~3 倍。這時候本地磁碟很快就會告急,而且伺服器硬碟擴容通常比物件儲存貴得多。
本地儲存不是「落後選項」
很多人一上來就說本地儲存不專業,我不太同意。本地儲存的優勢是零額外費用、零 API 延遲、備份邏輯簡單(打包整個 storage 目錄就完事了),而且原圖保護、頻率限制這類功能在本地跑起來最直接,不用擔心簽名 URL 的過期問題。
它的問題只有兩個:容量上限與流量成本。當月流量超過 1TB,或者你開始遇到「圖片載入慢、海外訪問卡」的抱怨,才是該搬家的時候。
物件儲存的真實成本,藏在流量裡
這是最容易被忽略的一點。主流雲廠商的儲存費用其實很便宜,標準型大概每 GB 每月 0.1 元人民幣上下,100GB 一個月十幾塊錢而已。真正燒錢的是外網下行流量與 CDN 回源——按量計費動輒每 GB 0.2~0.5 元,一個小小的圖床被熱門論壇引用一次,帳單就能翻好幾倍。
所以我的建議是:物件儲存務必搭配 CDN,並且把快取時間設長一些(圖片這種靜態資源設 30 天完全合理)。另外記得開啟流量告警,別等到月底才發現問題。
自建 MinIO 適合什麼人?
如果你是團隊內部使用,或者對資料合規有要求(例如醫療、法務類素材不能出內網),MinIO 是很好的折衷方案。它完全兼容 S3 協議,所以在總裁圖床的儲存策略裡配置起來跟接雲端一樣,但資料留在自己的機房。
代價是運維成本。單節點 MinIO 沒有冗餘,硬碟壞了就是資料全丟,真要上生產至少得四節點糾刪碼。這件事別省,我見過太多「反正是內部用」最後哭著找資料恢復公司的案例。
多策略混合才是成熟做法
程式支援多存儲策略並與角色組綁定,這個設計其實很值得利用。實務上可以這樣配:游客上傳走一個容量小、審核嚴格的本地策略;付費會員或內部團隊走物件儲存策略,容量大、走 CDN 加速。這樣既控制了成本,又不影響核心用戶的體驗。
至於遷移,如果哪天真要從本地搬到 OSS,記得先確認資料庫裡存的是相對路徑而非完整 URL,否則歷史圖片全部失效,那種場面……真的不想再經歷一次。
我的選擇順序
剛起步、月圖片量在幾千張以內,直接本地,別折騰。用戶開始成長、每月流量破 500GB,換物件儲存加 CDN,這一步的體驗提升最明顯。有合規需求或圖片量到 TB 級別,再考慮自建 MinIO 集群。
儲存這件事沒有標準答案,只有適不適合當下的階段。過早上雲是浪費錢,太晚遷移是浪費用戶耐心,中間那個平衡點得自己抓。

評論(8)
本地儲存其實很適合剛起步的小站,省錢又簡單
流量費才是大頭,之前沒設 CDN 告警差點超支
MinIO 自建聽起來不錯,但運維成本真的不低
轉 WebP 壓縮後確實能省不少空間,這點很實用
想問一下如果圖片量暴增,遷移到 OSS 會很麻煩嗎?
多策略混合這招挺聰明,不同用戶給不同方案
以前吃過虧,資料庫存絕對路徑導致換圖床全掛了
沒有標準答案這句話太對了,得看自己實際需求