このセクションでは、バージョニングが有効なバケットの、オブジェクトバージョンをリスト化する例を説明します。Amazon S3 では、オブジェクトのバージョン情報は、バケットに関連付けられているバージョンのサブリソースに格納されます。詳細については、「バケット設定オプション」を参照してください。バージョニングが有効なバケット内のオブジェクトを一覧表示するには、ListBucketVersions
アクセス許可が必要です。
以下の手順では、Amazon S3 コンソールを使用して、オブジェクトの異なるバージョンを表示する方法を説明します。
オブジェクトの複数のバージョンを表示する方法
AWS Management Console にサインインし、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 --bucket
amzn-s3-demo-bucket1
list-object-versions
の使用に関する詳細は、「AWS CLI コマンドリファレンス」の「list-object-versions」を参照してください。