バージョニングを有効化している S3 バケットでオブジェクトの過去バージョンを一括削除する手順。
- 任意の S3 バケットの過去バージョンを確認する。
% aws s3api list-object-versions --bucket test-bucket|jq -r '.Versions[]|select(.IsLatest==false)|@text "\(.Key) \(.VersionId)"' test.txt SFDNnzR6u1gfaeSV6ObrLubM.BoG5SiM test.txt kUD7TJofypM6OCKj6kKPLrsWQC3f6gCm test.txt ypCUBbPprcBd4mEOpjSr3FqFsfSjNetN test.txt lIL_Lx69anh5NEc54YpAq2wOdoct5KB4 test/test.txt .r_ZZYydapeG8hzufYOFUuUXoHg0vRsl test/test.txt TY2KZY4Ny_HeY7RU9q4th_buEr5Rrtca test/test2.txt xGFYyS1BHb.ue.waKQiNfTSwQPrPuEWo test/test2.txt oDt8wsl0t.ZgU0NJ5K6tkOrTQQ4cfoDm test/test2.txt t4yV.zYNTP6ZXi0PCftXqhKk1v9kkA73 test2.txt ujot_grq_oL3NrjGpgXC8Y_5eFR9RMr5 test2.txt NFZNfh.vXXivtWekN1LSDly_75Fyh0Yl test2.txt w2hKNGVg6M6hlUwjw5rVD9ocOGrXlX.v
- 過去バージョンを一括削除する。
% aws s3api list-object-versions --bucket test-bucket|jq -r '.Versions[]|select(.IsLatest==false)|@text "\(.Key) \(.VersionId)"'|while read KEY VER do aws s3api delete-object --bucket test-bucket --key ${KEY} --version-id ${VER} done { "VersionId": "SFDNnzR6u1gfaeSV6ObrLubM.BoG5SiM" } { "VersionId": "kUD7TJofypM6OCKj6kKPLrsWQC3f6gCm" } { "VersionId": "ypCUBbPprcBd4mEOpjSr3FqFsfSjNetN" } { "VersionId": "lIL_Lx69anh5NEc54YpAq2wOdoct5KB4" } { "VersionId": ".r_ZZYydapeG8hzufYOFUuUXoHg0vRsl" } { "VersionId": "TY2KZY4Ny_HeY7RU9q4th_buEr5Rrtca" } { "VersionId": "xGFYyS1BHb.ue.waKQiNfTSwQPrPuEWo" } { "VersionId": "oDt8wsl0t.ZgU0NJ5K6tkOrTQQ4cfoDm" } { "VersionId": "t4yV.zYNTP6ZXi0PCftXqhKk1v9kkA73" } { "VersionId": "ujot_grq_oL3NrjGpgXC8Y_5eFR9RMr5" } { "VersionId": "NFZNfh.vXXivtWekN1LSDly_75Fyh0Yl" } { "VersionId": "w2hKNGVg6M6hlUwjw5rVD9ocOGrXlX.v" }
- 過去バージョンが削除されていることを確認する。
% aws s3api list-object-versions --bucket test-bucket|jq -r '.Versions[]|select(.IsLatest==false)|@text "\(.Key) \(.VersionId)"'