REST を使用して BLOB リソースのプロパティとメタデータを設定および取得する
コンテナーと BLOB は、HTTP ヘッダーとして表記されるカスタムのメタデータをサポートしています。 メタデータ ヘッダーは、新しいコンテナー リソースまたは BLOB リソースを作成する要求、または既存のリソースのプロパティを明示的に作成する要求に設定できます。
メタデータ ヘッダーの形式
メタデータ ヘッダーは、名前と値のペアの形式で指定します。 ヘッダーの形式は次のとおりです。
x-ms-meta-name:string-value
バージョン 2009-09-19 以降では、メタデータの名前は C# 識別子の名前付け規則に従う必要があります。
名前の大文字と小文字は区別されません。 メタデータ名では、それが作成されたときの大文字と小文字の区別が保持されますが、設定または読み取り時には大文字と小文字が区別されません。 リソースに対して同じ名前の複数のメタデータ ヘッダーが送信された場合、Blob service からステータス コード 400 (Bad Request) が返されます。
メタデータは、名前と値のペアで構成されます。 すべてのメタデータ ペアの合計サイズは最大 8 KB です。
メタデータの名前と値のペアは有効な HTTP ヘッダーです。つまり、HTTP ヘッダーに関する制約がすべて適用されます。
メタデータに対する操作
BLOB リソースまたはコンテナー リソースのメタデータは、リソースのコンテンツを返したり変更したりすることなく、直接取得または設定できます。
メタデータ値は、全体の読み取りまたは書き込みのみが可能で、部分的な更新はサポートされていません。 リソースに関するメタデータを設定すると、そのリソースの既存のメタデータ値が上書きされます。
プロパティとメタデータの取得
GET/HEAD 操作は、指定されたコンテナーまたは BLOB のメタデータ ヘッダーを取得します。 これらの操作はヘッダーのみを返し、応答本文は返されません。 コンテナーに関するメタデータ ヘッダーを取得する際の URI の構文は、次のとおりです。
GET/HEAD https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=metadata
BLOB に関するメタデータ ヘッダーを取得する際の URI の構文は、次のとおりです。
GET/HEAD https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=metadata
メタデータ ヘッダーの設定
PUT 操作は、指定したコンテナーまたは BLOB に関するメタデータ ヘッダーを設定し、該当するリソースに関する既存のメタデータを上書きします。 要求にヘッダーを指定せずに PUT を呼び出した場合は、該当するリソースに関する既存のメタデータがすべて消去されます。
コンテナーに関するメタデータ ヘッダーを設定する際の URI の構文は、次のとおりです。
PUT https://myaccount.blob.core.windows.net/mycontainer?comp=metadata&restype=container
BLOB に関するメタデータ ヘッダーを設定する際の URI の構文は、次のとおりです。
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=metadata
コンテナーおよび BLOB の標準 HTTP プロパティ
コンテナーおよび BLOB は、特定の標準 HTTP プロパティもサポートしています。 プロパティとメタデータは両方とも標準の HTTP ヘッダーとして表記されますが、ヘッダー名の付け方に違いがあります。 メタデータのヘッダー名は、プレフィックス x-ms-meta- とカスタム名で構成されます。 プロパティのヘッダーは、HTTP/1.1 プロトコル仕様の第 14 セクション「Header Field Definitions」の指定に準拠した、標準の HTTP ヘッダー名を使用します。
コンテナーでサポートされている標準 HTTP ヘッダーは次のとおりです。
ETagLast-Modified
BLOB でサポートされている標準 HTTP ヘッダーは次のとおりです。
ETagLast-ModifiedContent-LengthContent-TypeContent-MD5Content-EncodingContent-LanguageCache-ControlOriginRange