コンテナー、BLOB、およびメタデータの名前付けと参照
このトピックでは、コンテナー、BLOB、メタデータ、スナップショットの名前付けと参照について説明します。 ストレージ アカウントには、0 個以上のコンテナーを含めることができます。 コンテナーには、プロパティ、メタデータ、および 0 個以上の BLOB が含まれています。 アカウントに階層型名前空間がある場合、コンテナーには 0 個以上のディレクトリを含め、それらのディレクトリには 0 個以上の BLOB を含めることもできます。 BLOB は、バイナリ データ、プロパティ、およびメタデータで構成される任意の 1 つのエンティティです。
リソース名
コンテナーまたは BLOB を参照する URI は一意である必要があります。 すべてのアカウント名は一意であるため、2 つのアカウントは同じ名前のコンテナーを持つことができます。 ただし、特定のストレージ アカウント内では、すべてのコンテナーに一意の名前が必要です。 特定のコンテナー内のすべての BLOB も、そのコンテナー内で一意の名前を持つ必要があります。
名前付け規則に違反する名前のコンテナーまたは BLOB を作成しようとすると、要求は状態コード 400 (無効な要求) で失敗します。
BLOB 名とコンテナー名は、URL 内の BLOB サービスに渡されます。 一部の文字は、UTF-8 (優先) または MBCS を使用して URL に表示されるようにパーセントエンコードする必要があります。 このエンコードは、Azure Storage クライアント ライブラリを使用すると自動的に行われます。 ただし、エンコードされた場合でも、URL パスで無効な特定の文字があります。 これらの文字が BLOB 名またはコンテナー名に含まれている場合、要求が失敗する可能性があります。 これらの文字の一覧については、コンテナー名または BLOB 名での使用に推奨されない Unicode 文字
\uE000のようなコード ポイントは NTFS ファイル名で有効ですが、有効な Unicode 文字ではないため、使用できません。 また、制御文字 (0x1Fに0x00、\u0081など) などの一部の ASCII 文字や Unicode 文字も使用できません。
HTTP/1.1 の Unicode 文字列に関するその他の規則については、「RFC 2616、セクション 2.2: 基本的な規則 および RFC 3987
コンテナー名
コンテナー名は、次の名前付け規則に準拠した有効な DNS 名である必要があります。
コンテナー名は、文字または数字で始まるか終わる必要があり、文字、数字、ハイフン /マイナス (-) 文字のみを含めることができます。
すべてのハイフン/マイナス (-) 文字の直前に文字または数字を付ける必要があります。連続するハイフンはコンテナー名では使用できません。
コンテナー名内のすべての文字は小文字にする必要があります。
コンテナー名の長さは 3 ~ 63 文字にする必要があります。
ディレクトリ名
アカウントに階層型名前空間がある場合、ディレクトリ名は次の名前付け規則に準拠している必要があります。
ディレクトリ名には、任意の組み合わせの文字を含めることができます。
ディレクトリ名は 1 文字以上でなければならず、長さは 1,024 文字以下にする必要があります。
ディレクトリ名では大文字と小文字が区別されます。
予約 URL 文字は適切にエスケープする必要があります。
手記
末尾がドット (.)、スラッシュ (/)、円記号 (\)、または 2 つのシーケンスまたは組み合わせで終わるディレクトリ名は使用しないでください。 パス セグメントはドット (.) で終わる必要はありません。
BLOB 名
BLOB 名は、次の名前付け規則に準拠している必要があります。 これらの規則は、特に明記されていない限り、階層型名前空間を持つアカウント内の BLOB にも適用されます。
BLOB 名には、任意の組み合わせの文字を含めることができます。
Azure Storage の BLOB の場合、BLOB 名の長さは 1 文字以上にする必要があり、1,024 文字を超えることはできません。
Azure Storage エミュレーターでは、最大 256 文字の BLOB 名がサポートされています。 詳細については、「開発とテストに Azure ストレージ エミュレーターを使用する」を参照してください。
BLOB 名では大文字と小文字が区別されます。
予約 URL 文字は適切にエスケープする必要があります。
BLOB 名を構成するパス セグメントの数には制限があります。 パス セグメントは、ディレクトリまたは仮想ディレクトリに対応する連続する区切り文字 (スラッシュ
/
など) の間の文字列です。 次のパス セグメントの制限は、BLOB 名に適用されます。- ストレージ アカウント で階層型名前空間が有効になっていない 場合、BLOB 名を構成するパス セグメントの数は 254 を超えることはできません。
- ストレージ アカウントで階層型名前空間が有効になっている場合、BLOB 名を構成するパス セグメントの数は 63 を超えることはできません (アカウント名とコンテナー名のパス セグメントを含む)。
手記
ドット (.)、スラッシュ (/)、円記号 (\)、または 2 つのシーケンスまたは組み合わせで終わる BLOB 名は使用しないでください。 パス セグメントはドット (.) で終わる必要はありません。
既定では、BLOB サービスは階層構造ではなくフラット ストレージ スキームに基づいています。 ただし、BLOB 名内に文字または文字列の区切り記号を指定して、仮想階層を作成することもできます。 たとえば、次の一覧は有効な BLOB 名と一意の BLOB 名を示しています。 文字列は、BLOB 名と同じコンテナー内の仮想ディレクトリ名の両方として有効であることに注意してください。
/ある
/a.txt
/a/b
/a/b.txt
BLOB を列挙するときに、区切り文字を利用できます。
メタデータ キーと値の名前
コンテナーまたは BLOB リソースのメタデータは、リソースに関連付けられている名前と値のペアとして格納されます。 メタデータ キー名は、次の名前付け規則に従う必要があります。
文字またはアンダースコアで始める必要があります
次の文字には、文字、数字、またはアンダースコアを使用できます。
メタデータ キー名は有効な ASCII である必要があります
メタデータ値の名前も有効な ASCII である必要があります。 メタデータ名は、作成された大文字と小文字は保持されますが、設定または読み取り時には大文字と小文字は区別されません。 リソースに対して同じ名前のメタデータ ヘッダーが 2 つ以上送信された場合、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 |
関連項目
- Blob Storage Service を使用する方法
- BLOB リソースの列挙
- Blob Service の概念
- ルート コンテナー の操作の
- スナップショット BLOB の