作者:張醫博
存儲空間(Bucket)
存儲空間是用戶用於存儲對象(Object)的容器,所有的對象都必須隸屬於某個存儲空間。存儲空間具有各種配置屬性,包括地域、訪問權限、存儲類型等。用戶可以根據實際需求,創建不同類型的存儲空間來存儲不同的數據。
- 同一個存儲空間的內部是扁平的,沒有文件系統的目錄等概念,所有的對象都直接隸屬於其對應的存儲空間。
- 每個用戶可以擁有多個存儲空間。
- 存儲空間的名稱在 OSS 範圍內必須是全局唯一的,- 一旦創建之後無法修改名稱。
- 存儲空間內部的對象數目沒有限制。
存儲空間的命名規範如下:
- 只能包括小寫字母、數字和短橫線(-)。
- 必須以小寫字母或者數字開頭和結尾。
- 長度必須在 3–63 字節之間。
對象/文件(Object)
對象是 OSS 存儲數據的基本單元,也被稱為 OSS 的文件。對象由元信息(Object Meta),用戶數據(Data)和文件名(Key)組成。對象由存儲空間內部唯一的 Key 來標識。對象元信息是一組鍵值對,表示了對象的一些屬性,比如最後修改時間、大小等信息,同時用戶也可以在元信息中存儲一些自定義的信息。
對象的生命週期是從上傳成功到被刪除為止。在整個生命週期內,只有通過追加上傳的 Object 可以繼續通過追加上傳寫入數據,其他上傳方式上傳的 Object 內容無法編輯,您可以通過重複上傳同名的對象來覆蓋之前的對象。
對象的命名規範如下:如果上傳 objectname 命名含有一些特殊字符,比如中文、空格、特殊符號等,需要客戶本地上傳或者下載時將文件的 objectname 做一個 URL encoder 編碼
- 使用 UTF-8 編碼。
- 長度必須在 1–1023 字節之間。
- 不能以正斜線(/)或者反斜線()開頭。
Region(地域)
Region 表示 OSS 的數據中心所在物理位置。用戶可以根據費用、請求來源等選擇合適的地域創建 Bucket。一般來說,距離用戶更近的 Region 訪問速度更快。詳情請查看 OSS 已經開通的 Region。
Region 是在創建 Bucket 的時候指定的,一旦指定之後就不允許更改。該 Bucket 下所有的 Object 都存儲在對應的數據中心,目前不支持 Object 級別的 Region 設置。
region 格式一般是 oss-國家地域,比如 oss-cn-beijing ,就是代表存儲的物理位置是在北京。
Endpoint(訪問域名)
Endpoint 表示 OSS 對外服務的訪問域名。OSS 以 HTTP RESTful API 的形式對外提供服務,當訪問不同的 Region 的時候,需要不同的域名。通過內網和外網訪問同一個 Region 所需要的 Endpoint 也是不同的。例如杭州 Region 的外網 Endpoint 是 oss-cn-hangzhou.aliyuncs.com,內網 Endpoint 是 oss-cn-hangzhou-internal.aliyuncs.com。具體的內容請參見各個 Region 對應的 Endpoint。
bucket (公網域名)
指的是 bucket 和 endpoint 結合在一起,讓用戶訪問的公網域名。完整的格式是 endpoint ,比如我的 bucket 是 xiaoming,endpoint 在杭州(oss-cn-hangzhou.aliyuncs.com),那麼我的bucket 公網域名就是 xiaoming.oss-cn-hangzhou.aliyuncs.com
AccessKey(訪問密鑰)
AccessKey(簡稱 AK)指的是訪問身份驗證中用到的 AccessKeyId 和 AccessKeySecret。OSS 通過使用 AccessKeyId 和 AccessKeySecret 對稱加密的方法來驗證某個請求的發送者身份。AccessKeyId 用於標識用戶;AccessKeySecret 是用戶用於加密簽名字符串和 OSS 用來驗證簽名字符串的密鑰,必須保密。對於 OSS 來說,AccessKey 的來源有:
- Bucket 的擁有者申請的 AccessKey。
- 被 Bucket 的擁有者通過 RAM 授權給第三方請求者的 AccessKey。
- 被 Bucket 的擁有者通過 STS 授權給第三方請求者的 AccessKey。
關於 AccessKey 可以在 訪問控制 詳細分析