この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
S3 バケットに名前が空のフォルダが存在します。
S3 コンソールでこのフォルダを削除しようとしても、削除ボタンが押せません。root ユーザーの権限が必要なのでしょうか?
どう対応すればいいの?
root ユーザーの権限は必要ありません。S3 バケット内の名前が空のフォルダを削除する方法は、以下の 2 通りあります。
- 空のフォルダ内のすべてのオブジェクトを削除する(S3 コンソールのみで実施可能)
- AWS CLI で以下コマンドを実施する
$ aws s3api list-objects-v2 --query 'Contents[*].Key' --bucket <バケット名> | grep //
> "blog//test",
# ListObjectsV2 API では S3 の名称空フォルダを「//」と表現します。
$ aws s3 rm 's3://<バケット名>/blog//' --recursive
> delete: s3://<バケット名>/blog//test
$ aws s3api list-objects-v2 --query 'Contents[*].Key' --bucket <バケット名> | grep //
>
# 出力結果から "blog//test", がなくなったので削除成功