共用方式為


命名和參考容器、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 字元清單。 這些字元與這份清單中的其他字元搭配使用時,可能會失敗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

另請參閱