1. 物件儲存:你的「智慧雲端倉庫」
1.1 物件儲存 概述
傳統檔案系統就像你家衣櫃:衣服按「上衣/褲子/裙子」分層放,你要找一件襯衫,得先打開衣櫃→上衣區→襯衫格。這種「層級巢狀」的模式,在檔案數量爆炸時會變得極其笨重。
物件儲存則像現代倉儲物流:每個包裹都有一個唯一的「快遞單號」(物件鍵),你只需報單號,倉庫機器人就能從海量包裹中精準取出。
核心區別一覽:
| 維度 | 傳統檔案系統 | 物件儲存 |
|---|---|---|
| 組織方式 | 層級目錄樹 | 扁平鍵值對 |
| 存取協定 | POSIX(本地檔案操作) | HTTP/REST API |
| 擴充性 | 單機容量有限 | 近乎無限水平擴充 |
| 中繼資料 | 基礎屬性(大小、時間) | 豐富的自訂中繼資料 |
| 典型場景 | 本地辦公文件 | 圖片/影片/備份/靜態資源 |
1.2 物件儲存的核心概念
儲存貯體(Bucket):你的「倉庫分區」
儲存貯體是物件儲存的頂級容器,相當於一個獨立的命名空間。所有物件都必須存放在某個儲存貯體中。
命名規則(以阿里雲 OSS 為例):
- 全域唯一:在整個雲端廠商的所有使用者中不能重複
- 只能包含小寫字母、數字和短橫線
- 必須以小寫字母或數字開頭和結尾
- 長度在 3-63 個字元之間
實戰踩坑:曾經有個團隊按業務線建立了幾十個儲存貯體,結果月底帳單出來傻眼了——每個儲存貯體都有最低儲存費用和請求費用。建議:按「環境+用途」組合規劃儲存貯體,比如 prod-static-assets、dev-backup-archive。
物件(Object):你的「資料包裹」
物件是儲存的基本單元,由三部分組成:
鍵(Key):物件的唯一識別碼,相當於「快遞單號」
- 範例:
images/avatar/2024/user123.jpg - 雖然看起來像路徑,但本質只是字串
- 範例:
資料(Data):物件的內容本身
- 可以是任意二進位資料
- 大小限制取決於雲端廠商(通常單個物件 5TB 以內)
中繼資料(Metadata):描述物件的附加資訊
- 系統中繼資料:Content-Type、ETag、Last-Modified 等
- 自訂中繼資料:如
x-oss-meta-owner、x-oss-meta-project
存取控制:誰能動我的「倉庫」?
物件儲存提供多層權限控制:
| 層級 | 控制方式 | 典型場景 |
|---|---|---|
| 儲存貯體層級 | Bucket Policy(資源政策) | 禁止所有外網存取、只允許特定 IP |
| 物件層級 | ACL(存取控制清單) | 公開圖片、私有文件 |
| 暫時授權 | STS(安全權杖服務) | 前端直傳、行動端上傳 |
安全紅線:永遠不要把 AccessKey ID 和 AccessKey Secret 寫在前端程式碼裡!正確做法是:前端向你的後端申請暫時 STS 憑證,後端驗證身分後回傳帶過期時間的暫時憑證。