私はバケットを削除してから再作成することを考えていました(後で気付いた悪いオプション)。
次に、バケットからすべてのオブジェクトを削除するにはどうすればよいですか?
私はこれを試しました: http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Bucket.delete_objects
ただし、すべてではなく複数のオブジェクトが削除されます。
バケツを空にする最良の方法は何ですか?
aws cli を使用するだけです。
aws s3 rm s3://mybucket --recursive
ええと、boto3を使用するように主張した場合、より長い回答を求めます。これにより、削除マーカーがs3に送信されます。フォルダー処理は必要ありません。 bucket.Object.allは1Kに制限されないイテレータを作成します。
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
# suggested by Jordon Philips
bucket.objects.all().delete()
バージョン管理が有効になっている場合、すべてのオブジェクトバージョンを削除するために、他の回答への同様の呼び出しがあります。
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
bucket.object_versions.delete()