Find file
Fetching contributors…
Cannot retrieve contributors at this time
39 lines (22 sloc) 1.55 KB

Paperclip S3 Storage

This gem will force paperclip to store attachments on S3 if your application is in production. It’s great for Heroku apps.

Important Notes

If you’re in fact using Heroku, and you want the attachments to have custom paths. PLEASE do not use RAILS_ROOT. Why? Every time you deploy your app to Heroku, you’re changing the RAILS_ROOT, so all your uploaded files will be lost and your bucket WILL be a mess!

A default, Heroku-working path is on by default, so you can just use it.

How to Use

This gem will read your S3 credentials from the server’s environment. You will need to provide a secret key, an access key and a bucket. (You can provide an s3_credentials hash options with access_key_id and secret_access_key instead.)

If you are using Heroku, it’s really easy to do this, just

  heroku config:add S3_BUCKET=your_bucket_name
  heroku config:add S3_KEY=your_access_key
  heroku config:add S3_SECRET=your_secret_key

Ok, if you’re really lazy, you can do that in one line:

  heroku config:add S3_BUCKET=your_bucket_name S3_KEY=your_access_key S3_SECRET=your_secret_key

After you’ve done this, you can use paperclip normally. The gem just extends this methods and changes the options to force the S3 Storage. You can even use the same options (like path, default_style, etc.)


Feel free to fork, fix/patch/extend this. Everything is welcome.


  • Clean the Railtie, specially the Rails.env part.