S3のバケツから削除したファイルを復元することは可能ですか?
23 vonhogen 2009-10-15
Amazon S3 ドキュメント: によると、以下のようになっています
一度削除されると、オブジェクトを復元したり削除を解除したりする方法はありません
21 Dave Webb 2009-10-15
バージョニングを有効にしていれば、可能です。バージョニングされたバケット上では、ファイルの削除アクションは実際には削除されませんが、”Delete Marker “でバージョンが追加されます。削除マーカーはAWS CLIを使って削除することができます
aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker
でバケツの中の全てのファイルを取得することができます
aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt
バケツの中のすべてのファイルの削除を解除したい場合は、試してみてください
echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+"; print "aws s3api delete-object --bucket yourbucket-name --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;
47 Chris Cinelli 2015-12-30
答えを探していたので、この質問を更新しただけです
S3バケットにVERSIONINGを追加できるようになりました。これにより、削除後もS3はオブジェクトのバージョンを保持するようになります。完全なドキュメントを参照してください。http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html
3 dineth 2012-11-12
AWSのコンソールを使ってオブジェクトのバージョンを一覧表示できるようになりました。http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html
正しい権限を持っていれば、削除マーカー(削除されたオブジェクトの最新バージョン)を削除することができ、その結果、オブジェクトが再び利用できるようになります
1 Fabian M 2016-08-22