Skip to content

Instantly share code, notes, and snippets.

@ashee
Created March 20, 2017 20:50
Show Gist options
  • Save ashee/ea8a07e9461eb962fde19d572315402f to your computer and use it in GitHub Desktop.
Save ashee/ea8a07e9461eb962fde19d572315402f to your computer and use it in GitHub Desktop.
Bulk delete s3 objects
#!/usr/bin/env ruby
require 'aws-sdk'
BUCKET_NAME = 'YOUR_BUCKET_NAME'
PREFIX = 'your/key/path/'
s3 = Aws::S3::Resource.new(region: 'us-east-1')
bucket = s3.bucket(BUCKET_NAME)
# find files with an embedded colon (:)
keys_to_delete = bucket.objects(prefix: PREFIX)
.select {|o| o.key =~ /.*:.*/}
.collect() { |o|
{ :key => "#{o.key}"}
}
# delete files found above
bucket.delete_objects({
delete: { # required
objects: keys_to_delete,
quiet: false,
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment