-
-
Save absyah/714c354139ebb5a23c40 to your computer and use it in GitHub Desktop.
Configure Carrierwave for Amazon S3 Storage and Heroku
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Avatar < ActiveRecord::Base | |
mount_uploader :avatar_image, AvatarImageUploader # **must** specify class of uploader, otherwise base uploader is used, and no | |
# ... | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AvatarImageUploader < CarrierWave::Uploader::Base | |
include CarrierWave::MiniMagick | |
def store_dir | |
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" | |
end | |
version :print do | |
version :thumb { process :resize_to_fit => [32, 32] } | |
version :preview { process :resize_to_fit => [256, 256] } | |
version :full { process :resize_to_fit => [2048, 2048] } | |
end | |
version :web do | |
version :thumb { process :resize_to_fit => [32, 32] } | |
version :preview { process :resize_to_fit => [128, 128] } | |
version :full { process :resize_to_fit => [1024, 768] } | |
end | |
# ... | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config/initializers/carrierwave.rb | |
CarrierWave.configure do |config| | |
config.fog_credentials = { | |
# Configuration for Amazon S3 should be made available through an Environment variable. | |
# For local installations, export the env variable through the shell OR | |
# if using Passenger, set an Apache environment variable. | |
# | |
# In Heroku, follow http://devcenter.heroku.com/articles/config-vars | |
# | |
# $ heroku config:add S3_KEY=your_s3_access_key S3_SECRET=your_s3_secret S3_REGION=eu-west-1 S3_ASSET_URL=http://assets.example.com/ S3_BUCKET_NAME=s3_bucket/folder | |
# Configuration for Amazon S3 | |
:provider => 'AWS', | |
:aws_access_key_id => ENV['S3_KEY'], | |
:aws_secret_access_key => ENV['S3_SECRET'], | |
:region => ENV['S3_REGION'] | |
} | |
# For testing, upload files to local `tmp` folder. | |
if Rails.env.test? || Rails.env.cucumber? | |
config.storage = :file | |
config.enable_processing = false | |
config.root = "#{Rails.root}/tmp" | |
else | |
config.storage = :fog | |
end | |
config.cache_dir = "#{Rails.root}/tmp/uploads" # To let CarrierWave work on heroku | |
config.fog_directory = ENV['S3_BUCKET_NAME'] | |
config.s3_access_policy = :public_read # Generate http:// urls. Defaults to :authenticated_read (https://) | |
config.fog_host = "#{ENV['S3_ASSET_URL']}/#{ENV['S3_BUCKET_NAME']}" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ... | |
gem 'carrierwave' | |
gem 'fog', '~> 1.0.0' # Need to specify version, as carrierwave references older (0.9.0) which doesn't allow configuration of Rackspace UK Auth URL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- Nested Versions --> | |
<%= image_tag avatar.avatar_image.url(:web, :preview) %> | |
<%= image_tag avatar.avatar_image.url(:print, :full) %> | |
<%= image_tag avatar.avatar_image.url(:web, :thumb) %> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment