命名和參考共用、目錄、檔案和中繼資料

儲存體帳戶只能包含零個或多個 Azure 檔案共用。 共用可包含屬性、中繼資料及零個或多個檔案或目錄。 目錄可包含屬性及零個或多個檔案或目錄。 檔案是任何由二進位資料、屬性和中繼資料所組成的單一實體。

資源名稱

參考共用、目錄或檔案的 URI 必須是唯一的。 在某個特定的儲存體帳戶內,每個共用都必須有唯一的名稱。 某個特定共用或目錄內的每個檔案也必須有該共用或目錄中的唯一名稱。

如果您嘗試使用違反命名規則的名稱建立共用、目錄或檔案,則要求將會失敗並產生狀態碼 400 (不正確的要求)。

共用名稱

檔案服務共用名稱的規則比 SMB 通訊協定針對 SMB 共用名稱所規定的規則更具限制性,如此一來,Blob 和檔案服務即可共用類似的容器和共用命名慣例。 共用的命名限制如下所示:

  • 共用名稱必須是有效的 DNS 名稱。
  • 共用名稱必須以字母或數字開頭,而且只能包含字母、數字和虛線 (-) 字元。
  • 每個虛線 (-) 字元的前後都必須是字母或數字;共用名稱中不可使用連續虛線。
  • 共用名稱中的所有字母都必須是小寫。
  • 共用名稱的長度必須介於 3 至 63 個字元。

下表將比較 Azure 檔案儲存體和 Azure Blob 儲存體的命名限制:

命名和參考容器、Blob 及中繼資料 SMB 共用名稱限制
• 容器名稱必須是有效的 DNS 名稱。
• 容器名稱必須以字母或數位開頭,而且只能包含字母、數位和虛線 (-) 字元。
• 每個虛線 (-) 字元都必須緊接在開頭,後面接著字母或數位;容器名稱中不允許連續的連字號。
• 容器名稱中的所有字母都必須是小寫。
• 容器名稱的長度必須介於3到63個字元之間。
• 共用名稱的長度不能超過80個字元。
• 下列字元在共用名稱中不合法: \ / [ ] : &#124; < > + = ; , * ? "
• 範圍0x00 至0x1F (含)的控制字元在共用名稱中不合法。
• 所有其他 Unicode 字元都是合法的。
• 名稱會保留大小寫,不區分大小寫。

目錄和檔案名稱

Azure 檔案儲存體針對目錄和檔案名強制執行下列命名規則:

  • 目錄和檔案名稱的大小寫會保留下來,但不區分大小寫。
  • 檔案和目錄元件名稱的長度不得超過 255 個字元。
  • 目錄名稱的結尾不能是正斜線字元 (/) 。 如果有的話,則會自動移除。
  • 檔案名稱不得以正斜線字元 (/) 結尾。
  • 保留的 URL 字元必須正確逸出。
  • 不允許使用下列字元: " \ / : | < > * ?
  • 不可使用不合法的 URL 路徑字元。 \uE000 之類的字碼指標 (在 NTFS 檔案名稱中有效) 並不是有效的 Unicode 字元。 此外,某些 ASCII 或 Unicode 字元 (像是控制字元 0x000x1F\u0081 等) 也不可使用。 如需在 HTTP/1.1 中控管 Unicode 字串的規則,請參閱 RFC 2616,第2.2 節:基本規則RFC 3987
  • 不允許下列檔案名: LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、PRN、AUX、NUL、CON、CLOCK $、點字元 (. ) 和兩個點字元 ()。) 。

下表將比較 Azure 檔案儲存體和 Azure Blob 儲存體的命名限制:

命名和參考容器、Blob 及中繼資料 SMB 通訊協定名稱限制
• Blob 名稱的長度必須至少為1個字元,且長度不得超過1024個字元。
• Blob 名稱會區分大小寫。
• 保留的 URL 字元必須經過正確的轉義。
• Blob 名稱的結尾可以是虛擬目錄分隔符號,例如正斜線 (/)
• 不允許的 URL 路徑字元不合法:像是 \uE000 的程式碼點,在 NTFS 檔案名中有效,是不正確 Unicode 字元。 此外,某些 ASCII 或 Unicode 字元 (像是控制字元 0x00 到 0x1F、\u0081 等) 也不可使用。 如需在 HTTP/1.1 中控管 Unicode 字串的規則,請參閱 RFC 2616,第2.2 節:基本規則RFC 3987
• 路徑名稱的長度不能超過32760個字元。
• 每個路徑名稱元件 (檔案/目錄) 的長度不能超過255個字元。
• 路徑名稱是由一或多個路徑名稱元件所組成,以 (\) 反斜線字元分隔。
• 路徑名稱會保留大小寫且不區分大小寫 (兩個名稱,但不允許) 的大小寫不同。
• 目錄路徑不能與檔案路徑相同。
• 下列字元在元件名稱中是不合法的: \ / : &#124; < > * ? "
• 範圍0x00 至0x1F (含)的控制字元在共用名稱中不合法。

路徑名稱

路徑名稱是由一或多個路徑名稱元件所組成 (目錄或檔案名,) 以正斜線 (/) 字元分隔。 最後一個路徑名稱元件以外的所有路徑名稱元件表示目錄。 最後一個路徑名稱元件表示目錄或檔案。 適用下列命名規則:

  • 路徑名稱的長度不能超過2048個字元。 路徑中的個別元件長度最多可為255個字元。
  • 路徑名稱是由一或多個路徑名稱元件所組成,並以正斜線 (/) 字元分隔。
  • 路徑中的子目錄深度不能超過 250。
  • 共用相同上層目錄的檔案與目錄不能使用相同的名稱。 例如,相同的父路徑之下不能存在各自名為 data 的檔案與目錄。

中繼資料名稱

共用或檔案資源的中繼資料會儲存為與資源相關聯的名稱-值組。 中繼資料名稱必須遵守 c # 識別碼的命名規則。

請注意,中繼資料名稱會保留其建立時的大小寫,但在設定或讀取時並不區分大小寫。 如果針對單一資源提交兩個以上的同名中繼資料標頭,Azure 檔案服務會傳回狀態碼 400 (不正確的要求)。

資源 URI 語法

每個資源都有對應的基底 URI,它會參考資源本身。 對於儲存體帳戶而言,基底 URI 僅包含帳戶的名稱:

https://myaccount.file.core.windows.net

對於共用而言,基底 URI 包含帳戶名稱和共用名稱:

https://myaccount.file.core.windows.net/myshare

對於目錄而言,基底 URI 包含帳戶名稱、共用名稱和目錄路徑:

https://myaccount.file.core.windows.net/myshare/myparentdir/mydir

對於檔案而言,基底 URI 包含帳戶名稱、共用名稱和檔案路徑:

https://myaccount.file.core.windows.net/myshare/myfile  
https://myaccount.file.core.windows.net/myshare/mydir/myfile  
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir/myfile  

另請參閱