s3cmd is an excellent tool for interacting with S3-compatible storage solutions (Amazon S3, Backblaze B2, Linode Object Storage, etc.) via the command line.
I personally find it easier to use and more intuitive than the
The tool can be installed (on a Mac) via Homebrew:
brew install s3cmd
The tool comes with a
--configure command in order to create a valid configuration file.
However, I need to deal with several storage accounts at any one time (for various things), and so it is useful for me to have separate profiles.
I keep these in my home directory. For example, my “personal” config file (
~/.s3personal) looks like this (for Linode Object Storage):
[personal] access_key = CHANGETHIS secret_key = CHANGETHIS host_base = eu-central-1.linodeobjects.com host_bucket = %(bucket)s.eu-central-1.linodeobjects.com
secret_key can be provided by your storage provider.
You can create as many of these config files as required. I (currently) can’t find a way to keep them nicely in one file, but there may be one.
Using the profiles
The profiles can be used by including a
-c flag in your calls to
For example, to use my personal profile to upload to a bucket I use:
s3cmd -c ~/.s3personal put FILE.png s3://BUCKET/path/FILE.png