命名和參考容器、Blob 和元數據
本主題描述命名和參考容器、Blob、元數據和快照集。 記憶體帳戶可以包含零個或多個容器。 容器包含屬性、元數據和零個或多個 Blob。 如果您的帳戶有階層命名空間,則容器也可以包含零或多個目錄,而這些目錄可以包含零個或多個 Blob。 Blob 是由二進位數據、屬性和元數據所組成的任何單一實體。
資源名稱
參考容器或 Blob 的 URI 必須是唯一的。 因為每個帳戶名稱都是唯一的,因此兩個帳戶可以有具有相同名稱的容器。 不過,在指定的記憶體帳戶內,每個容器都必須有唯一的名稱。 指定容器內的每個 Blob 也必須在該容器內具有唯一的名稱。
如果您嘗試建立名稱違反命名規則的容器或 Blob,要求將會失敗,狀態代碼為 400 (不正確的要求)。
Blob 和容器名稱會傳遞至 URL 內的 Blob 服務。 某些字元必須以百分比編碼,才能使用UTF-8或 MBCS出現在URL中。 當您使用 Azure 記憶體用戶端連結庫時,會自動進行這種編碼。 不過,即使在編碼時,URL 路徑中也有某些字元無效。 如果這些字元出現在 Blob 或容器名稱中,要求可能會失敗。 如需這些字元的清單,請參閱 不建議用於容器或 Blob 名稱的 Unicode 字元。
程序代碼點,例如 \uE000,雖然在NTFS檔名中有效,但不是有效的Unicode字元,因此無法使用它們。 此外,也不允許某些 ASCII 或 Unicode 字元,例如控制字元(0x00 0x1F、\u0081等)。
如需管理 HTTP/1.1 中 Unicode 字串的其他規則,請參閱 RFC 2616 第 2.2 節:基本規則 和 RFC 3987。
容器名稱
容器名稱必須是有效的 DNS 名稱,符合下列命名規則:
容器名稱的開頭或結尾必須是字母或數位,而且只能包含字母、數位和連字元/減號(-) 字元。
每個連字元/減號 (-) 字元必須緊接在前面,後面接著字母或數位;容器名稱中不允許連續連字元。
容器名稱中的所有字母都必須是小寫。
容器名稱長度必須介於 3 到 63 個字元之間。
目錄名稱
如果您的帳戶具有階層命名空間,則目錄名稱必須符合下列命名規則:
目錄名稱可以包含任何字元組合。
目錄名稱長度必須至少為一個字元,且長度不能超過 1,024 個字元。
目錄名稱會區分大小寫。
保留的 URL 字元必須正確逸出。
注意
請避免結尾為點 (.)、正斜線 (/)、反斜杠 (\), 或兩者的順序或組合的目錄名稱。 沒有路徑區段應該以點 (.) 結尾。
Blob 名稱
Blob 名稱必須符合下列命名規則。 除非另有說明,否則這些規則也適用於具有階層命名空間之帳戶中的 Blob。
Blob 名稱可以包含任何字元組合。
對於 Azure 記憶體中的 Blob,Blob 名稱必須至少有一個字元長,且長度不能超過 1,024 個字元。
Azure 記憶體模擬器支援最多 256 個字元的 Blob 名稱。 如需詳細資訊,請參閱 使用 Azure 記憶體模擬器進行開發和測試。
Blob 名稱會區分大小寫。
保留的 URL 字元必須正確逸出。
包含 Blob 名稱的路徑區段數目有一些限制。 路徑區段是連續分隔符之間的字串,例如,對應至目錄或虛擬目錄的正斜線
/
。 下列路徑區段限制適用於 Blob 名稱:- 如果記憶體帳戶 未 已啟用階層命名空間,則組成 Blob 名稱的路徑區段數目不能超過 254。
- 如果記憶體帳戶已啟用階層命名空間,則組成 Blob 名稱的路徑區段數目不能超過 63 個(包括帳戶名稱和容器名稱的路徑區段)。
注意
請避免以點 (.)、正斜線 (/)、反斜杠 (\) 或兩者序列或組合結尾的 Blob 名稱。 沒有路徑區段應該以點 (.) 結尾。
根據預設,Blob 服務是以一般記憶體配置為基礎,而不是階層式配置。 不過,您可以在 Blob 名稱內指定字元或字串分隔符,以建立虛擬階層。 例如,下列清單會顯示有效且唯一的 Blob 名稱。 請注意,字串可以同時作為 Blob 名稱與相同容器中的虛擬目錄名稱有效:
/一個
/a.txt
/a/b
/a/b.txt
您可以利用列舉 Blob 時的分隔符。
元數據索引鍵和值名稱
容器或 Blob 資源的元數據會儲存為與資源相關聯的名稱/值組。 中繼資料金鑰名稱必須遵循下列命名規則:
必須以字母或底線開頭
下列字元可以是字母、數位或底線
元數據金鑰名稱必須是有效的 ASCII
元數據值名稱也必須是有效的 ASCII。 請注意,元數據名稱會保留建立它們的大小寫,但在設定或讀取時不區分大小寫。 如果針對資源提交兩個或多個具有相同名稱的元數據標頭,Blob 服務會傳回狀態代碼 400 (不正確的要求)。
資源 URI 語法
每個資源都有對應的基底 URI,其會參考資源本身。
針對記憶體帳戶,基底 URI 僅包含帳戶的名稱:
https://myaccount.blob.core.windows.net
針對容器,基底 URI 包含帳戶的名稱和容器的名稱:
https://myaccount.blob.core.windows.net/mycontainer
針對 Blob,基底 URI 包含帳戶的名稱、容器的名稱,以及 Blob 的名稱:
https://myaccount.blob.core.windows.net/mycontainer/myblob
記憶體帳戶可能有根容器,這是可從 URI 省略的預設容器。 根容器中的 Blob 可以參考而不命名容器,或根容器的名稱明確參考 ($root
)。 如需詳細資訊,請參閱 使用根容器。 下列 URI 都參考根容器中的 Blob:
https://myaccount.blob.core.windows.net/myblob
https://myaccount.blob.core.windows.net/$root/myblob
Blob 快照集
快照集是儲存在快照集建立時所儲存之 Blob 的唯讀版本。 您可以使用快照集來建立 Blob 的備份或檢查點。 快照集 Blob 名稱包含基底 Blob URI 以及指出快照集建立時間的日期時間值。
例如,假設 Blob 具有下列 URI:
https://myaccount.blob.core.windows.net/mycontainer/myblob
該 Blob 快照集的 URI 格式如下:
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
不建議用於容器或 Blob 名稱的 Unicode 字元
下表提供不建議用於容器或 Blob 名稱的 Unicode 字元清單。 這些字元與這份清單中的其他字元搭配使用時,可能會失敗UTF-8或MBCS譯碼,導致對Blob服務的要求失敗。
Unicode 字元 |
---|
U+0080 |
U+0082 |
U+0083 |
U+0084 |
U+0085 |
U+0086 |
U+0087 |
U+0088 |
U+0089 |
U+008A |
U+008B |
U+008C |
U+008E |
U+0091 |
U+0092 |
U+0093 |
U+0094 |
U+0095 |
U+0096 |
U+0097 |
U+0098 |
U+0099 |
U+009A |
U+009B |
U+009C |
U+009E |
U+009F |
U+FDD1 |
U+FDD2 |
U+FDD3 |
U+FDD4 |
U+FDD5 |
U+FDD6 |
U+FDD7 |
U+FDD8 |
U+FDD9 |
U+FDDA |
U+FDDB |
U+FDDC |
U+FDDE |
U+FDDF |
U+FDE0 |
U+FDE1 |
U+FDE2 |
U+FDE3 |
U+FDE4 |
U+FDE5 |
U+FDE6 |
U+FDE7 |
U+FDE8 |
U+FDE9 |
U+FDEA |
U+FDEB |
U+FDEC |
U+FDED |
U+FDEE |
U+FDEF |
U+FFF0 |
U+FFF1 |
U+FFF2 |
U+FFF3 |
U+FFF4 |
U+FFF5 |
U+FFF6 |
U+FFF7 |
U+FFF8 |
U+FFF9 |
U+FFFA |
U+FFFB |
U+FFFC |
U+FFFD |
U+FFFE |
U+FFFF |
U+1FFFE |
U+1FFFF |
U+2FFFE |
U+2FFFF |
U+3FFFE |
U+3FFFF |
U+5FFFE |
U+5FFFF |
U+6FFFE |
U+6FFFF |
U+7FFFE |
U+7FFFF |
U+9FFFE |
U+9FFFF |
U+AFFFE |
U+AFFFF |
U+BFFFE |
U+BFFFF |
U+DFFFE |
U+DFFFF |
U+EFFFE |
U+EFFFF |
U+FFFFE |
U+FFFFF |