Amazon S3: すべてのオブジェクトバージョンを削除
概要
バージョニングが有効なバケットにおいて、古いバージョンも含めすべてのオブジェクトを削除する方法。
AWS CLI
aws s3api list-object-versions --bucket "${BUCKET_NAME}" --query "Versions[].{Key:Key,VersionId:VersionId}" > objects.json
aws s3api delete-objects --bucket "${BUCKET_NAME}" --delete "$(jq '{"Objects": .}' objects.json)"
rm objects.json
AWS SDK for Python (Boto3)
例) aws-s3-delete-all-versions.py
def s3_delete_all(bucket: str):
s3_resource = boto3.resource("s3", config=Config(retries={"mode": "standard"}))
s3_resource.Bucket(bucket).object_versions.all().delete()