共有、ディレクトリ、ファイル、およびメタデータの名前付けと参照

1 つのストレージ アカウントには、0 個以上の Azure File 共有を含めることができます。 共有には、プロパティ、メタデータ、および 0 個以上のファイルまたはディレクトリが格納されます。 ディレクトリには、プロパティおよび 0 個以上のファイルまたはディレクトリが格納されます。 ファイルは、バイナリ データ、プロパティ、およびメタデータで構成される単一のエンティティです。

リソース名

共有、ディレクトリ、またはファイルを参照する URI は一意であることが必要です。 ストレージ アカウント内では、すべての共有名は一意である必要があります。 共有またはディレクトリ内のすべてのファイルの名前もその共有またはディレクトリ内で一意である必要があります。

共有、ディレクトリ、またはファイルを名前付け規則に違反する名前で作成しようとすると、要求はステータス コード 400 (Bad Request) で失敗します。

共有名

コンテナーと共有に対する同じような名前付け規則を BLOB サービスと File サービスで共通化できるように、File サービスの共有名の規則は SMB プロトコルで規定されている SMB 共有名の規則よりも制約が厳しくなっています。 共有の名前付けの制約は、次のとおりです。

  • 共有名は有効な DNS 名にする必要があります。
  • 共有名は、文字または数字で始まり、文字、数字、またはダッシュ (-) 文字だけを使用できます。
  • すべてのダッシュ文字は、その直前および直後に文字または数字が使用されている必要があります。連続するダッシュ文字は、共有名では使用できません。
  • 共有名のすべての文字は、小文字にする必要があります。
  • 共有名の長さは 3 ~ 63 文字にする必要があります。

次の表は、Azure Files と Azure Blob storage の名前付けの制限を比較したものです。

コンテナー、BLOB、メタデータの名前付けと参照 SMB 共有名の制限
• コンテナー名は有効な DNS 名である必要があります。
• コンテナー名の先頭には文字または数字を使用する必要があり、文字、数字、ダッシュ (-) 文字のみを含めることができます。
• すべてのダッシュ (-) 文字は、その直後に文字または数字を付ける必要があります。連続するダッシュは、コンテナー名では使用できません。
• コンテナー名のすべての文字は、小文字にする必要があります。
• コンテナー名は、3 ~ 63 文字の長さにする必要があります。
• 共有名の長さは80文字以下でなければなりません。
• 次の文字は、共有名では無効です。 \ / [ ] : &#124; < > + = ; , * ? "
• 範囲 0x00 ~ 0x1F の制御文字は、共有名では無効です。
• その他の Unicode 文字はすべて有効です。
• 名前は大文字と小文字を区別し、大文字小文字を区別しません。

ディレクトリとファイルの名前

Azure Files では、ディレクトリ名とファイル名に対して次の名前付け規則が適用されます。

  • ディレクトリ名とファイル名では、大文字と小文字が区別されます。
  • ディレクトリとファイルのコンポーネント名は 255 文字以下で指定する必要があります。
  • ディレクトリ名の末尾にスラッシュ (/) を使用することはできません。 使用した場合、自動的に削除されます。
  • ファイル名は、スラッシュ (/) で終わることができません。
  • URL の予約文字は適切にエスケープしてください。
  • 次の文字は使用できません。 " \ / : | < > * ?
  • 無効な URL パス文字は使用できません。 NTFS ファイル名で有効な \uE000 などのコード ポイントは、有効な Unicode 文字ではありません。 また、制御文字 (0x000x1F\u0081 など) など、一部の ASCII 文字または Unicode 文字も使用できません。 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 $、ドット文字 (.)、および2個のドット文字 (..)。

次の表は、Azure Files と Azure Blob storage の名前付けの制限を比較したものです。

コンテナー、BLOB、メタデータの名前付けと参照 SMB プロトコル名の制限
• Blob 名は、少なくとも1文字の長さにする必要があります。長さは1024文字以下にする必要があります。
• Blob 名では大文字と小文字が区別されます。
• 予約された URL 文字は適切にエスケープする必要があります。
• Blob 名は、スラッシュ (/) のように、仮想ディレクトリの区切り記号で終わることができます。
• 無効な URL パス文字は使用できません。 \uE000 のようなコードポイントは、NTFS ファイル名では有効ですが、有効な Unicode 文字ではありません。 また、制御文字 (0x00 ~ 0x1F、\u0081 など) など、一部の ASCII 文字または Unicode 文字も使用できません。 HTTP/1.1 で Unicode 文字列を管理する規則については 、rfc 2616 のセクション 2.2: 基本的な規則rfc 3987を参照してください。
• パス名の長さは32760文字以下でなければなりません。
• 各パス名コンポーネント (ファイルまたはディレクトリ) の長さは、255文字以下でなければなりません。
• パス名は、() の円記号 () で区切られた1つ以上のパス名コンポーネントで構成され \ ます。
• パス名は大文字と小文字を保持し、大文字小文字を区別しません (大文字小文字のみが異なる2つの名前は使用できません)。
• ファイルパスと同じディレクトリパスを持つことはできません。
• 次の文字はコンポーネント名では無効です。 \ / : &#124; < > * ? "
• 範囲 0x00 ~ 0x1F の制御文字は、共有名では無効です。

パス名

パス名は、スラッシュ (/) 文字で区切られた1つ以上のパス名コンポーネント (ディレクトリまたはファイル名) で構成されます。 最後のパス名コンポーネント以外のすべてのパス名コンポーネントは、ディレクトリを表します。 最後のパス名コンポーネントは、ディレクトリまたはファイルを表します。 次の名前付け規則が適用されます。

  • パス名の長さは2048文字以下でなければなりません。 パス内の個々のコンポーネントは、最大255文字までの長さにすることができます。
  • パス名は、スラッシュ (/) 文字で区切られた1つ以上のパス名コンポーネントで構成されます。
  • パス内のサブディレクトリの深さは、250 を超えることができません。
  • 同じ親ディレクトリを共有するファイルとディレクトリに同じ名前を付けることはできません。 たとえば、どちらも data という名前のファイルとディレクトリは同じ親パスに存在できません。

メタデータ名

共有リソースまたはファイル リソースのメタデータは、リソースに関連付けられた名前と値のペアとして保存されます。 メタデータ名は、 C# 識別子の名前付け規則に従う必要があります。

メタデータ名の作成時に指定された大文字と小文字の違いは維持されますが、設定時または読み取り時には大文字と小文字は区別されません。 リソースに対して同じ名前の複数のメタデータ ヘッダーが送信された場合、Azure File サービスはステータス コード 400 (Bad Request) を返します。

リソース 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  

関連項目