命名和參考容器、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 名稱長度必須至少為一個字元,且不可超過 1024 個字元。

    Azure 記憶體模擬器支援最多 256 個字元的 Blob 名稱。 如需詳細資訊,請參閱 使用 Azure 記憶體模擬器進行開發和測試

  • Blob 名稱區分大小寫。

  • 保留的 URL 字元必須正確逸出。

  • 包含 Blob 名稱的路徑區段數目有一些限制。 路徑區段是連續分隔符之間的字串 (,例如,對應至目錄或虛擬目錄的正斜線 /) 。 下列路徑區段限制適用於 Blob 名稱:

    • 如果記憶體帳戶 啟用階層命名空間,則組成 Blob 名稱的路徑區段數目不能超過 254。
    • 如果記憶體帳戶已啟用階層命名空間,包含 Blob 名稱的路徑區段數目不能超過 63 個 (包括帳戶名稱和容器名稱的路徑區段) 。

注意

避免結尾為點 (.) 、正斜線 (/) 、反斜杠 (\) 或兩者的順序或組合。 沒有路徑線段應該以點 (.) 結尾。

不允許正斜線的螢幕快照。

根據預設,Blob 服務是以一般記憶體配置為基礎,而不是階層式配置。 不過,您可以在 Blob 名稱內指定字元或字串分隔符號以建立虛擬階層。 例如,下列清單顯示有效的唯一 Blob 名稱。 請注意,字串可以同時做為相同容器中有效的 Blob 名稱和虛擬目錄名稱:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

您可以在列舉 Blob 時利用分隔符號字元。

中繼資料名稱

容器或 Blob 資源的中繼資料會儲存為與資源相關聯的名稱-值組。 元數據名稱必須遵守 C# 識別碼的命名規則。

請注意,中繼資料名稱會保留其建立時的大小寫,但在設定或讀取時並不區分大小寫。 如果針對單一資源提交兩個以上的同名中繼資料標頭,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 名稱包括基底 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或MCBS譯碼,導致對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

另請參閱