Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

sample app using Rails3, carrierwave, Jquery File Upload to store images on S3.

branch: master
Octocat-spinner-32 app validating on delete of each and all files October 27, 2011
Octocat-spinner-32 config init commit October 21, 2011
Octocat-spinner-32 db init commit October 21, 2011
Octocat-spinner-32 doc init commit October 21, 2011
Octocat-spinner-32 lib init commit October 21, 2011
Octocat-spinner-32 log init commit October 21, 2011
Octocat-spinner-32 public added support to V5 October 23, 2011
Octocat-spinner-32 script init commit October 21, 2011
Octocat-spinner-32 vendor Added shadowbox support. October 25, 2011
Octocat-spinner-32 .gitignore untracking uploads folder October 23, 2011
Octocat-spinner-32 Gemfile - Added best_in_place support. October 25, 2011
Octocat-spinner-32 Gemfile.lock - Added best_in_place support. October 25, 2011
Octocat-spinner-32 README.textile edited readme October 26, 2011
Octocat-spinner-32 Rakefile init commit October 21, 2011
Octocat-spinner-32 config.ru init commit October 21, 2011
README.textile

Description:

V5:

Sample app using Rails 3.1, carrierwave and V5 of jquery-file-upload to upload and store files on Amazon S3.

V4:

The old version of the app using Rails 3 and V4 of jquery-file-upload can be found here

The backgrounder branch delays the entire upload process to S3 thanks to carrierwave backgrounder and delayed job

Install:

  • Clone or fork the github repo
  • cd into app directory
  
    $: bundle install       #install required gems
    $: rake db:create:all   #create dbs
    $: rake db:migrate      #migrate db
    $: rails s              #start app
  

S3:

Since this app stores files to amazon S3 you will need an Amazon S3 account, otherwise you can choose to store images on your local filesystem by editing the uploader:

  
    #app/uploaders/image_uploader.rb
    # Choose what kind of storage to use for this uploader:
      storage :file     #stores files locally
    # storage :fog      #stores files on S3
  

Amazon S3 support is made possibile by Fog

You will need to tell carrierwave to use Amazons S3 by creating an initializer and providing your Amazon S3 authentication details:

  
    #config/initializers/carrierwave.rb
    
    CarrierWave.configure do |config|
      config.fog_credentials = {
        :provider               => 'AWS',                                      # required
        :aws_access_key_id      => 'amazon s3 access key',                     # required
        :aws_secret_access_key  => 'amazon s3 secret access key',              # required
        :region                 => 'us-west-1'                                 # optional, defaults to 'us-east-1'
      }
      config.fog_directory  = 'yourbucketname'                                 # required
      config.fog_host       = 'http://yourbucketname.s3.amazonaws.com/'        # optional, defaults to nil
      config.fog_public     = false                                            # optional, defaults to true
      config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}           # optional, defaults to {}
    end
  

Image Processing:

MiniMagick is app default for processing images; if you want to use another library, just edit the Gemfile and modify the uploader to reflect your choice:

  
    #app/uploaders/image_uploader.rb
    # Include RMagick or ImageScience support:
    # include CarrierWave::RMagick
      include CarrierWave::ImageScience
    # include CarrierWave::MiniMagick
  

References:

TODO:

  • testing
Something went wrong with that request. Please try again.