0.0
No commit activity in last 3 years
No release in over 3 years
Generate signed URLs to get S3 objects.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.9
~> 10.0

Runtime

 Project Readme

s3_signed_url

s3_signed_url generates signed URLs to get or put S3 objects.

Our backend is described in official documetns.

Installation

Add this line to your application's Gemfile:

gem 's3_signed_url'

And then execute:

$ bundle

Or install it yourself as:

$ gem install s3_signed_url

Ands 3_signed_url requires AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_REGION. So you should get them from AWS IAM, and set in ~/.aws/credentials or environment variables.

Usage

Generate URL for s3://examplebucket/test.txt:

$ s3_signed_url s3://examplebucket/test.txt
https://s3.amazonaws.com/examplebucket/test.txt?...

Then you can download the file like:

$ curl -o test.txt "https://s3.amazonaws.com/examplebucket/test.txt?..."

The generated uses HTTPS by default. To use HTTP, append --no-secure option:

$ s3_signed_url s3://examplebucket/test.txt --no-secure
http://s3.amazonaws.com/examplebucket/test.txt?...

And generated URLs expires in 15 minutes by default. If you want to set it manually, append --expire option with the number of seconds:

$ s3_signed_url s3://examplebucket/test.txt --expire 1800
https://s3.amazonaws.com/examplebucket/test.txt?...

If you want to upload a new file and generated a signed url for it, append --upload option with the path to file:

$ s3_signed_url s3://examplebucket/test.txt --upload /path/to/test.txt
https://s3.amazonaws.com/examplebucket/test.txt?...

If you need an uploadable url, append --method option with PUT:

$ s3_signed_url s3://examplebucket/test.txt --method PUT
https://s3.amazonaws.com/examplebucket/test.txt?...

Then you can send a PUT request with an uploading file like:

$ curl --upload-file /path/to/test.txt "https://s3.amazonaws.com/examplebucket/test.txt?..."

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

  1. Fork it ( https://github.com/a2ikm/s3_signed_url/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request