diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2016-04-16 17:40:58 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2016-04-16 17:40:58 -0700 |
commit | 2b617d9413c73bc657c41abbcd7f72444549df7a (patch) | |
tree | 88be55f07a6bf2cbb551deadac1f90e6c52f72cc /bin/boto-empty-deleted-versions | |
parent | fc04851684f31c7246bf562a224168f9fdab64aa (diff) | |
download | dotfiles-2b617d9413c73bc657c41abbcd7f72444549df7a.tar.gz |
emptys3* scripts take an argument & renamed
Diffstat (limited to 'bin/boto-empty-deleted-versions')
-rwxr-xr-x | bin/boto-empty-deleted-versions | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bin/boto-empty-deleted-versions b/bin/boto-empty-deleted-versions new file mode 100755 index 00000000..e3835d4f --- /dev/null +++ b/bin/boto-empty-deleted-versions @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +"""boto-empty-deleted-versions -- delete all versions of deleted files from an s3 bucket""" + +import boto +from boto.s3 import deletemarker + +def main(): + """Main procedure""" + + bucket = sys.argv[1] + + connection = boto.connect_s3() + bucket = connection.get_bucket(bucket) + + files_to_delete = [] + for version in bucket.list_versions(): + if isinstance(version, deletemarker.DeleteMarker) and version.is_latest: + files_to_delete.append(version.name) + + for version in bucket.list_versions(): + if version.name in files_to_delete: + print "deleting", version.name, "version", version.version_id + bucket.delete_key(version.name, version_id=version.version_id) + +if __name__ == "__main__": + main() |