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
 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