s3up is a no-brainer tool for uploading files to S3, written in Go.

You use it like this:

$ s3up usage: s3up [--public] <local file> <bucket>[/<remote path>] $ s3up --public image.jpg myimages $

That's all. The bucket is created if it doesn't exist. File gets uploaded. Boring.. as it should be.


If you're using Linux on an i386 or amd64 machine, there's a handy pre-built static binary that should generally work out of the box:

Otherwise, grab a Go compiler and run: $ go get


You can optionally drop a JSON file in ~/.s3up with keys and/or the S3 endpoint to use:

{"AccessKey": "...", "SecretKey": "...", "BaseURL": "..."}

If BaseURL is not defined, it will default to the S3 endpoint of the US-East S3 region. If the access and secret keys are not defined, it defaults to the traditional AWS environment variables.


Gustavo Niemeyer <>