オブジェクトのメタデータの使用

メタデータの概要

オブジェクトには、Content-TypeCache-ControlContent-DispositionContent-Encoding など、GET リクエストの処理方法を制御するメタデータを関連付けることができます。また、カスタム key:value メタデータを設定して、アプリケーションで使用することもできます。特定のメタデータ プロパティの詳細については、メタデータのコンセプトのページをご覧ください。

オブジェクトにメタデータを設定する方法は 2 つあります。

  • アップロード時に、gsutil -h option を使用して 1 つまたは複数のメタデータ プロパティを指定し、オブジェクトに関連付けることができます。たとえば、次のコマンドを実行すると、gsutil は images というローカル ディレクトリからアップロードされるファイルに Content-TypeCache-Control を設定します。

    gsutil -h "Content-Type:text/html" \
           -h "Cache-Control:public, max-age=3600" cp -r images \
           gs://bucket/images
    

    -h は、gsutil コマンドのオプションです。cp サブコマンドのオプションではありません。

  • gsutil setmeta コマンドを使用すると、アップロード済みのオブジェクトに対してメタデータ フィールドの設定または削除を行うことができます。詳細については、gsutil help setmeta をご覧ください。

設定可能なフィールドとフィールド値

ETag や Content-Length など、一部のメタデータ フィールドは設定できません。設定可能なフィールドは次のとおりです。

  • Cache-Control
  • Content-Disposition
  • Content-Encoding
  • Content-Language
  • Content-Type
  • Custom-Time
  • カスタム メタデータ

フィールド名は、大文字と小文字が区別されません。

x-goog-meta- フィールドの値(任意の Unicode 値を含むことが可能)を除き、すべてのフィールドとその値は ASCII 文字のみで構成する必要があります。カスタム メタデータを HTTP ヘッダーとして送信する XML API を使用してメタデータを設定する場合、Unicode 文字は UTF-8 でエンコードされ、その後 ASCII に URL エンコードされます。例:

gsutil setmeta -h "x-goog-meta-foo: ã" gs://bucket/object

これは、foo%C3%A3 のカスタム メタデータの Key-Value ペアを格納します。その後、JSON API を使用して ls -L を実行し、オブジェクトのメタデータを一覧表示する %C3%A3 が出力されます。XML API を使用して ls -L を実行すると、この値は自動的に URL デコードされ、文字 ã が出力されます。

現在設定されているメタデータの確認

現在オブジェクトに設定されているメタデータを確認するには、次のコマンドを使用します。

gsutil ls -L gs://the_bucket/the_object