Amazon Simple Storage Service (Amazon S3) バケットから削除されたオブジェクトを取得したいと考えています。その方法を教えてください。

削除されたオブジェクトを取得するには、バケットのバージョニングを有効化します。

バージョニングが有効なバケットからオブジェクトを削除すると、Amazon S3 は、そのオブジェクトに関連付けられている削除マーカーを作成します。削除マーカーがある場合、Amazon S3 は、オブジェクトが削除されたかのようにリクエストに応答します (例: GET リクエストに対して 404 レスポンスを返す)。ただし、バージョニングが有効になっているため、オブジェクトは完全に削除されません。

削除されたオブジェクトを取得するには、次のステップに従い、関連付けられている削除マーカーを削除します。
重要: この手順を完了するには、バケットのオブジェクトバージョン (s3:DeleteObjectVersion) を削除するためのアクセス許可が必要です。詳細については、「オブジェクトオペレーションに対するアクセス許可」を参照してください。

1.    このコマンドを実行して、バケット内のオブジェクトバージョンをすべて一覧表示します。  

s3api list-object-versions --bucket examplebucket

2.    オブジェクトの削除マーカーの VersionID を書き留めます。たとえば、このレスポンスでは、オブジェクト undelete.txt の削除マーカーのバージョン ID が示されています。

{
    "DeleteMarkers": [
        {
            "Owner": {
                "DisplayName": "AwsTestAcct",
                "ID": "examplefd147b3631e1539e1979f0e4c491dae3ee07450e4c90fde681a6d9810"
            },
            "IsLatest": true,
            "VersionId": "example.d6tjAKF1iObKbEnNQkIMPjj",
            "Key": "undelete.txt",
            "LastModified": "2016-12-09T15:13:45.000Z"
        }
    ],

3.    このコマンドを実行して、オブジェクトの削除マーカーを削除します。--version-id の値として、必ず削除マーカーのバージョン ID を入力してください。

aws s3api delete-object --bucket protectedbucket --version-id 'example.d6tjAKF1iObKbEnNQkIMPjj' --key undelete.txt

4.    このコマンドを実行して、バケット内のオブジェクトをすべて一覧表示します。

aws s3 ls s3://examplebucket

5.    以前に削除したオブジェクトがリストに含まれていることを確認します。

注意: バケットの [MFA Delete] が有効になっている場合は、指定した多要素認証 (MFA) を使用して削除マーカーを削除する必要があります。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2015 年 12 月 31 日

更新: 2018 年 11 月 06 日