Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@milesmatthias
Created November 13, 2014 19:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save milesmatthias/0a9782fe11a628ac7303 to your computer and use it in GitHub Desktop.
Save milesmatthias/0a9782fe11a628ac7303 to your computer and use it in GitHub Desktop.
simple ruby script to remove an object from s3. requires having the aws gem installed.
#!/usr/bin/env ruby
##
# usage: AWS_SECRET_KEY=xxx AWS_ACCESS_KEY=xxx S3_BUCKET_NAME=xxx ./remove_s3_object.rb file1.html file2.html
#
#
require 'aws'
require 'pry'
aws_secret_key = ENV['AWS_SECRET_KEY']
aws_access_key = ENV['AWS_ACCESS_KEY']
s3_bucket_name = ENV['S3_BUCKET_NAME']
if [aws_secret_key, aws_access_key, s3_bucket_name].include?(nil)
abort 'usage: AWS_SECRET_KEY=xxx AWS_ACCESS_KEY=xxx S3_BUCKET_NAME=xxx ./remove_s3_object.rb "/file1.html" "/file2.html"'
end
#
files = ARGV
if files.count == 0
abort 'usage: AWS_SECRET_KEY=xxx AWS_ACCESS_KEY=xxx S3_BUCKET_NAME=xxx ./remove_s3_object.rb "/file1.html" "/file2.html"'
end
#
AWS.config({
:access_key_id => aws_access_key,
:secret_access_key => aws_secret_key
})
#s3 = AWS::S3.new(:s3_endpoint => s3_bucket_name + ".s3.amazonaws.com")
#bucket = s3.buckets[s3_bucket_name]
s3 = AWS::S3.new(:s3_endpoint => 's3.amazonaws.com')
location_constraint = s3.buckets[s3_bucket_name].location_constraint
endpoint = ['s3', location_constraint].compact.join('-') + '.amazonaws.com'
bucket = AWS::S3.new(:s3_endpoint => endpoint).buckets[s3_bucket_name]
puts endpoint
puts s3_bucket_name
files.each do |file|
object = bucket.objects[file]
if object.exists?
object.delete
puts "#{ file } deleted"
else
puts "#{ file } has already been deleted."
end
end
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment