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 ヘッダーは次のとおりです。

  • ETag
  • Last-Modified

BLOB でサポートされている標準 HTTP ヘッダーは次のとおりです。

  • ETag
  • Last-Modified
  • Content-Length
  • Content-Type
  • Content-MD5
  • Content-Encoding
  • Content-Language
  • Cache-Control
  • Origin
  • Range