Question
ここに何の変哲もないバケットがあります。ご覧の通り、オブジェクトはありません。
S3 スペシャリストのあなたは、リソース整理のために空のバケットは削除するように依頼されました。
そこでバケット名を確認し、「削除」をクリックしました。
しかし、なぜかバケットは空ではないというメッセージが表示されました。
この理由は以下のどれでしょうか?
- バグ
- キャッシュが残っている
- バージョニングを有効化している
- SSE-KMS により暗号化したオブジェクトを削除した直後である
- SSE-S3 により暗号化したオブジェクトを削除した直後である
- バケットが削除されたくないと懇願している
※何かの試験みたいですが、パクっていません。自分自身の経験談です。
Answer
答えは「3」です。(Twitter みたいに正答率出せたらいいのに、と思います。運営さんよろしくお願いします。)
「バージョンの表示」をクリックしてみます。
オブジェクトが姿を現しました。
削除マーカーを削除してみます。
オブジェクトが復元しました。あら不思議!
完全に削除
「バージョンの表示」を切り替えてから削除してみます。
元に戻すことができないというメッセージが表示されています。
この状態で削除すると、オブジェクトのバージョンもろとも削除されます。(復元不可能)
その後、バケットが空になり、冒頭のような空でないという警告は表示されずにバケットが削除できるようになります。
一方で「バージョンの表示」を切り替えずに削除しようとした場合は、削除マーカーが追加されるというメッセージが表示されます。一見削除されたように見えますが、削除マーカーが追加されただけでオブジェクトは復元可能です。(バージョン ID が蓄積していく)
参考記事