Buckler is a Ruby command line tool for performing common actions on Amazon S3 buckets. It’s more do-what-you-want and less overwhelmingly powerful than the AWS CLI. It’s also designed to work with Heroku applications.
Buckler requires at least Ruby 2.2.3. Get Buckler from Rubygems. The terminal command is called
gem install buckler bucket help
- Buckler will "context switch" with you as you change project folders. It discovers AWS credentials in your
.envfiles and Heroku applications.
- Prompts you to confirm dangerous actions.
- Works with bucket versioning. Issues reversible
deletecommands for versioned bucket objects.
bucket synccommand spends extra time doing what you want when you "copy" a bucket. The following properties on each object are also transferred: ACLs, metadata, storage class,
Expiresheader. This lets you get close to an exact copy of a bucket for testing migrations or other destructive changes.
# Get a list of your buckets bucket list # Run any command with additional debugging info bucket list --verbose # Get a list of all S3 regions bucket regions # Create a new bucket on your account bucket create new-bucket-name # Create a new bucket on your account in a different region bucket create new-bucket-name --region eu-west-1 # Remove all objects from one of your buckets bucket empty bucket-name # Destroy one of your buckets bucket destroy bucket-name # Copy the contents of one bucket into another # This command also conveniently copies # ACLs, headers, metadata, and a lot more. bucket sync source-bucket-name target-bucket-name # Get detailed help with Buckler commands bucket help bucket help sync bucket help create bucket help destroy bucket help empty bucket help list bucket help regions
You will need a AWS Access Key ID and AWS Secret Access Key pair with permission to mange your S3 buckets. Do not use your root keys. Generate a new set of keys with S3 permissions only.
When you run the
bucket command, Buckler tries to automatically discover AWS credentials around your working directory.
Dotenv: If the current folder has a file named
.env, Buckler will look for variables called
AWS_SECRET_ACCESS_KEY in the file. See Heroku’s documentation on this environment file format.
Heroku: If the current folder has a Git repository with a Heroku remote, Buckler will ask your Heroku application for variables named
Command Line Options: You can set the pair directly by providing the command line options
bucket list --id YOUR_AWS_ID --secret YOUR_AWS_SECRET
Environment Variables: You can set the pair directly as environment variables.
AWS_ACCESS_KEY_ID=your-id AWS_SECRET_ACCESS_KEY=your-secret bucket list
The Buckler test suite will create and destroy test buckets on your AWS account which will cost you more than 0 money. Existing buckets won’t be affected.
# Fork or clone Buckler git clone -o github firstname.lastname@example.org:csuhta/buckler.git cd buckler # Set your credentials in a .env echo "AWS_ACCESS_KEY_ID=your-id" >> .env echo "AWS_SECRET_ACCESS_KEY_ID=your-secret" >> .env # Work on stuff, then run the test suite rake test
Buckler is free software, and may be redistributed under the terms of the MIT license. Hope you like it!