オブジェクトメタデータの使用 - Amazon Simple Storage Service

新しい Amazon S3 ユーザーガイドにようこそ! Amazon S3 ユーザーガイドは、使用中止された 3 つのガイド (Amazon S3 開発者ガイドAmazon S3 コンソールユーザーガイドAmazon S3 入門ガイド) の情報と手順をまとめたものです。

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

Amazon S3 では、オブジェクトをアップロードする時にオブジェクトメタデータを設定できます。オブジェクトメタデータは名前と値のペアのセットです。オブジェクトのアップロード後にはオブジェクトメタデータは変更できません。オブジェクトメタデータを変更する唯一の方法は、オブジェクトのコピーを作成し、メタデータを設定することです。

オブジェクトを作成するときに、キー名も指定します。これにより、バケット内のオブジェクトは一意に識別されます。オブジェクトキー (またはキー名) によって、Amazon S3 バケット内のオブジェクトは一意に識別されます。詳細については、「オブジェクトキー名の作成」を参照してください。

Amazon S3 には、システム定義メタデータとユーザー定義メタデータの 2 種類のメタデータがあります。以下のセクションでは、システム定義メタデータとユーザー定義のメタデータについて詳しく説明します。Amazon S3 コンソールを使用したメタデータの編集の詳細については、「Amazon S3 コンソールでのオブジェクトメタデータの編集」を参照してください。

システムで定義されたオブジェクトメタデータ

Amazon S3 では、バケットに格納されるオブジェクトごとに、一連のシステムメタデータが維持されます。このシステムメタデータは必要に応じて処理されます。例えば、オブジェクトの作成日とサイズに関するメタデータが維持され、オブジェクト管理の目的でこの情報が使用されます。

システムメタデータには 2 つのカテゴリがあります。

  1. オブジェクト作成日などのメタデータはシステムによって制御され、Amazon S3 だけがその値を変更できます。

  2. 他のシステムメタデータ (オブジェクトに設定済みのストレージクラスや、オブジェクトでサーバー側の暗号化が有効になっているかどうかなど) は、ユーザーが値を制御するシステムメタデータの例です。バケットをウェブサイトとして設定している場合、ページリクエストを別のページや外部 URL にリダイレクトしたいことがあります。この場合、ウェブページはバケット内のオブジェクトです。Amazon S3 は、ページリダイレクト値をシステムメタデータとして保存し、ユーザーがその値を制御します。

    オブジェクトを作成するときに、このようなシステムメタデータ項目の値を設定したり、必要に応じてその値を更新したりできます。ストレージクラスの詳細については、「Amazon S3 ストレージクラスを使用する」を参照してください。

    サーバーサイドの暗号化の詳細については、「暗号化を使用したデータの保護」を参照してください。

注記

PUT リクエストヘッダーのサイズは 8 KB に制限されています。PUT リクエストヘッダー内のシステム定義メタデータのサイズは 2 KB に制限されています。システム定義メタデータのサイズは、キーと値の各ペアを US-ASCII にエンコードしたバイト数の合計に基づいて測定されます。

次の表は、システム定義のメタデータのリストとユーザーがそれを更新できるかどうかをまとめたものです。

名前 説明 ユーザーが値を変更することはできますか?
日付 現在の日付と時刻。 いいえ
Content-Length オブジェクトのサイズ (バイト単位)。 いいえ
Content-Type オブジェクトタイプ。 はい
Last-Modified

オブジェクト作成日または最終更新日のいずれか遅い方。

いいえ
Content-MD5 オブジェクトの base64 エンコードされた 128 ビット MD5 ダイジェスト。 いいえ
x-amz-server-side-encryption オブジェクトでサーバー側の暗号化が有効であるか、また暗号化が AWS Key Management Service (AWS KMS) または Amazon S3 マネージド暗号化 (SSE-S3) によるものかを示します。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。 はい
x-amz-version-id オブジェクトのバージョン。バケットのバージョニングを有効にすると、Amazon S3 ではバケットに追加されたオブジェクトにバージョン番号が割り当てられます。詳細については、「S3 バケットでのバージョニングの使用」を参照してください。 いいえ
x-amz-delete-marker バージョニングが有効にされているバケットで、このブール値マーカーはオブジェクトが削除マーカーであるかどうかを示します。 いいえ
x-amz-storage-class オブジェクトの保存に使われるストレージクラス。詳細については、「Amazon S3 ストレージクラスを使用する」を参照してください。 はい
x-amz-website-redirect-location 関連付けられたオブジェクトのリクエストを同じバケット内の別のオブジェクトまたは外部 URL にリダイレクトします。詳細については、「(オプション) ウェブページリダイレクトの設定」を参照してください。 はい
x-amz-server-side-encryption-aws-kms-key-id x-amz-server-side-encryption が存在し、その値が aws:kms である場合、これはオブジェクトに使用された AWS KMS 対称カスタマーマスターキー (CMK) の ID を示します。 はい
x-amz-server-side-encryption-customer-algorithm お客様が用意した暗号化キーを使用したサーバー側の暗号化 (SSE-C) が有効であるかどうかを示します。詳細については、「お客様が用意した暗号化キーによるサーバー側の暗号化 (SSE-C) を使用したデータの保護」を参照してください。 はい

ユーザー定義のオブジェクトメタデータ

オブジェクトをアップロードするときに、そのオブジェクトにメタデータを割り当てることもできます。このオプション情報は、オブジェクトを作成するための PUT リクエストまたは POST リクエストを送信するときに、名前と値 (キーと値) のペアとして指定します。REST API を使用してオブジェクトをアップロードするときは、オプションのユーザー定義メタデータ名を「x-amz-meta-」で始め、他の HTTP ヘッダーと区別する必要があります。REST API を使用してオブジェクトを取得するときは、このプレフィックスが返されます。SOAP API を使用してオブジェクトをアップロードする場合、このプレフィックスは不要です。SOAP API を使用してオブジェクトを取得するときは、オブジェクトのアップロードに使用した API にかかわらず、プレフィックスは削除されます。

注記

SOAP のサポートは HTTP 経由では廃止されましたが、HTTPS 経由では引き続き利用可能です。SOAP では、Amazon S3 の新機能がサポートされなくなります。REST API か AWS SDK を使用することをお勧めします。

REST API を介してメタデータを取得するとき、同じ名前を持つヘッダー (大文字と小文字は区別されません) は Amazon S3 によってカンマ区切りリストに結合されます。出力不可能な文字が含まれているメタデータは返されません。その代わりに、x-amz-missing-meta ヘッダーが、出力不可能なメタデータエントリの数を示す値と共に返されます。HeadObject アクションは、オブジェクト自体を返さずに、オブジェクトからメタデータを取得します。このオペレーションは、オブジェクトのメタデータのみに関心がある場合に役立ちます。HEAD を使用するには、オブジェクトへの READ アクセス権が必要です。詳細については、Amazon Simple Storage Service API リファレンスの「HeadObject」をご参照ください。

ユーザー定義メタデータはキーと値のペアのセットです。Amazon S3 はユーザー定義メタデータキーを小文字で保存します。

Amazon S3 では、任意の Unicode 文字をメタデータ値で使用できます。

これらのメタデータ値の表示に伴う問題を回避するために、REST を使用する場合は US-ASCII 文字を使用してください。SOAP またはブラウザベースのアップロードを POST 経由で使用する場合は UTF-8 を使用してください。

US-ASCII 以外の文字をメタデータ値で使用すると、指定した Unicode 文字列に US-ASCII 以外の文字が含まれていないかどうか調べられます。文字列に US-ASCII 文字のみが含まれている場合は、そのまま表示されます。文字列に US-ASCII 以外の文字が含まれている場合は、最初に UTF-8 を使用して文字エンコードされ、次に US-ASCII にエンコードされます。

以下はその例です。

PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
注記

PUT リクエストヘッダーのサイズは 8 KB に制限されています。PUT リクエストヘッダー内のユーザー定義メタデータのサイズは 2 KB に制限されています。ユーザー定義メタデータのサイズは、キーと値の各ペアを UTF-8 にエンコードしたバイト数の合計に基づいて測定されます。

アップロード後のオブジェクトへのメタデータの追加については、「Amazon S3 コンソールでのオブジェクトメタデータの編集」を参照してください 。