バージョニングが有効なバケットでのオブジェクトのリスト取得
このセクションでは、バージョニングが有効なバケットの、オブジェクトバージョンをリスト化する例を説明します。Amazon S3 では、オブジェクトのバージョン情報は、バケットに関連付けられているバージョンのサブリソースに保存されます。詳細については、「汎用バケットの設定オプション」を参照してください。バージョニングが有効なバケット内のオブジェクトを一覧表示するには、ListBucketVersions アクセス許可が必要です。
以下の手順では、Amazon S3 コンソールを使用して、オブジェクトの異なるバージョンを表示する方法を説明します。
オブジェクトの複数のバージョンを表示する方法
AWS マネジメントコンソール にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
[バケット] リストで、オブジェクトが含まれるバケットの名前を選択します。
-
バケット内のオブジェクトのバージョン一覧を表示するには、[Show versions] (バージョンのリスト) スイッチを選択します。
各オブジェクトバージョンについて、一意のバージョン ID、そのバージョンが作成された日時、その他のプロパティがコンソールに表示されます。(バージョニング状態を設定する前にバケットに保存されているオブジェクトには、バージョン ID [null] が付けられています)。
バージョンのないオブジェクトをリストするには、[バージョンのリスト] スイッチを選択します。
オブジェクトのバージョンは、コンソールの [オブジェクト概要] ペインでも、確認、ダウンロード、削除が行えます。詳細については、「Amazon S3 コンソールでのオブジェクトのプロパティの表示」を参照してください。
注記
300 バージョンより前のオブジェクトバージョンにアクセスするには、AWS CLI またはオブジェクトの URL を使用する必要があります。
重要
最新 (現在) のバージョンとして削除された場合のみ、オブジェクトを復元できます。削除されたオブジェクトの以前のバージョンを復元することはできません。詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。
このセクションの例では、バージョニングが有効なバケットのオブジェクトを一覧表示する方法を示します。各リクエストは最大 1,000 個のバージョンを返します (これ未満の数を指定した場合を除きます)。バケット内のバージョン数が、この上限数を超えている場合は、複数のリクエストを送信してすべてのバージョンを一覧表示します。このように「ページ」に分けて結果を返すプロセスは、ページ分割と呼ばれます。
ページ分割の仕組みを示すために、例ではレスポンスごとのオブジェクトバージョン数を 2 個に制限しています。各例では、最初のページの結果を取得すると、バージョンリストが切り詰められているかどうかを確認します。切り詰められている場合は、引き続きページの取得を繰り返し、すべてのバージョンを取得します。
注記
以下の例は、バージョニングが有効になっていないバケットや、個別のバージョンを持たないオブジェクトにも使用できます。これらの場合、Amazon S3 で返される各オブジェクトのバージョン ID は null になります。
他の AWS SDK の使用の詳細については、「AWS デベロッパーセンター
例 - バケット内のすべてのオブジェクトバージョンをリスト化
バケット内の各オブジェクトのすべてのバージョンを一覧表示するには、versions リクエストで GET Bucket サブリソースを使用します。Amazon S3 で取得できるオブジェクトは最大 1,000 個です。各オブジェクトバージョンが 1 個のオブジェクトとしてフルにカウントされます。したがって、バケット内に 2 つのキー (例: photo.gif と picture.jpg) があり、最初のキーに 990 個のバージョン、2 番目のキーに 400 個のバージョンがある場合、1 つのリクエストで取得されるバージョンは、photo.gif の 990 個と、picture.jpg のうち最新の 10 個のみです。
Amazon S3 は、最も新しく保存されたバージョンから開始して、保存された順序でオブジェクトバージョンを返します。
GET Bucket リクエストに、versions サブリソースを含めます。
GET /?versions HTTP/1.1 Host:bucketName.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 +0000 Authorization: AWSAKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
例 - キーのすべてのバージョンの取得
オブジェクトバージョンのサブセットを取得するには、GET
Bucket のリクエストパラメータを使用します。詳細については、 を参照してください。GET Bucket
-
prefixパラメータを、取得したいオブジェクトのキーに設定します。 -
GET Bucketサブリソースおよびversionsを使用して、prefixリクエストを送信します。GET /?versions&prefix=objectName HTTP/1.1
例 - プレフィックスを使用したオブジェクトの取得
次の例では、キーが myObject であるか、またはそれで始まるオブジェクトを取得します。
GET /?versions&prefix=myObject HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
オブジェクトのすべてのバージョンのサブセットを取得するには、他のリクエストパラメータを使用します。詳細については、「Amazon Simple Storage Service API リファレンス」の「GET Bucket」を参照してください。
例 - レスポンスが切り詰められた後の残ったオブジェクトのリスト取得
GET リクエストで返すことができるオブジェクトの数が max-keys の値を超えた場合、レスポンスには <isTruncated>true</isTruncated> と、リクエストを満たすが返されなかった最初のキー (NextKeyMarker 内) および最初のバージョン ID (NextVersionIdMarker 内) が含まれます。GET リクエストを満たす追加のオブジェクトを取得する後続のリクエストで、これらの戻り値を開始位置として使用します。
バケットの元の GET Bucket versions リクエストを満たす追加のオブジェクトを取得するには、以下の手順に従ってください。key-marker、version-id-marker、NextKeyMarker、および NextVersionIdMarker の詳細については、「Amazon Simple Storage Service API リファレンス」の「GET
Bucket」を参照してください。
以下は、元の GET リクエストを満たす追加のレスポンスです。
-
key-markerの値を、前のレスポンスのNextKeyMarkerで返されたキーに設定します。 -
version-id-markerの値を、前のレスポンスのNextVersionIdMarkerで返されたバージョン ID に設定します。 -
GET Bucket versionsおよびkey-markerを使用してversion-id-markerリクエストを送信します。
例 - 指定したキーおよびバージョン ID を始点としたオブジェクトの取得
GET /?versions&key-marker=myObject&version-id-marker=298459348571 HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
次のコマンドは、バケット内のオブジェクトのすべてのバージョンに関するメタデータを返します。
aws s3api list-object-versions --bucketamzn-s3-demo-bucket1
list-object-versions の使用に関する詳細は、「AWS CLI コマンドリファレンス」の「list-object-versions」を参照してください。