summaryrefslogtreecommitdiff
path: root/bin/boto-empty-deleted-versions
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2016-04-16 17:40:58 -0700
committerSean Whitton <spwhitton@spwhitton.name>2016-04-16 17:40:58 -0700
commit2b617d9413c73bc657c41abbcd7f72444549df7a (patch)
tree88be55f07a6bf2cbb551deadac1f90e6c52f72cc /bin/boto-empty-deleted-versions
parentfc04851684f31c7246bf562a224168f9fdab64aa (diff)
downloaddotfiles-2b617d9413c73bc657c41abbcd7f72444549df7a.tar.gz
emptys3* scripts take an argument & renamed
Diffstat (limited to 'bin/boto-empty-deleted-versions')
-rwxr-xr-xbin/boto-empty-deleted-versions27
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()