Use this script to delete all object versions in a S3 bucket. For very large object version counts it may be more effective to use Object Lifecycle Management instead to expire versions.
python delete-object-versions.py (s3-bucket-name)
Use this script to delete all object versions in a S3 bucket. For very large object version counts it may be more effective to use Object Lifecycle Management instead to expire versions.
python delete-object-versions.py (s3-bucket-name)
| #!/usr/bin/env python | |
| import sys | |
| import boto3 | |
| BUCKET = sys.argv[1] | |
| print(f'Deleting all object for bucket:"{BUCKET}"') | |
| client = boto3.client('s3') | |
| paginator = client.get_paginator('list_object_versions') | |
| for page in paginator.paginate(Bucket=BUCKET): | |
| versions = [] | |
| for version_type in ('DeleteMarkers', 'Versions'): | |
| try: | |
| for version in page[version_type]: | |
| version_tuple = (version['Key'], version['VersionId']) | |
| versions.append(version_tuple) | |
| except KeyError: | |
| # Ignore missing version type keys as there is nothing to do | |
| pass | |
| for key, version_id in versions: | |
| print(f'Deleting key:"{key}" version_id:"{version_id}"') | |
| client.delete_object( | |
| Bucket=BUCKET, | |
| Key=key, | |
| VersionId=version_id, | |
| ) |