gem 'mini_magick'
gem "carrierwave"
gem 'fog'
gem "fog-aws"
==================================
Uploader on:
storage :fog
==================================
For this Storage on AWS With Fog
CarrierWave.configure do |config|
if Rails.env.development? || Rails.env.test?
config.storage = :fog
else
config.fog_provider = 'fog/aws'
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'], # required
:aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], # required
:region => ENV['REGION'], # optional, defaults to 'us-east-1'
:endpoint => "https://s3-#{ENV['REGION']}.amazonaws.com"
}
config.fog_directory = ENV['AWS_BUCKET_NAME'] # required
# config.fog_public = false
config.fog_attributes = { :cache_control => 'max-age=315576000', :expires => 1.year.from_now.httpdate }
# see https://github.com/jnicklas/carrierwave#using-amazon-s3
# for more optional configuration
end
end
=============================================================
For Storage on AWS
Add gem: gem 'aws-sdk'
On uploader file: storage :aws
CarrierWave.configure do |config|
config.storage = :aws
config.aws_bucket = ENV['S3_BUCKET_NAME']
config.aws_acl = 'public-read'
config.aws_authenticated_url_expiration = 60 * 60 * 24 * 7
config.aws_credentials = {
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
region: ENV['AWS_REGION'] # Required
}
config.asset_host = ENV['CLOUDFRONT_ENDPOINT']
end
============================================================
development:
AWS_SECRET_ACCESS_KEY: xxxxxxxxxxxxxxxxxxxx
AWS_ACCESS_KEY_ID: xxxxxxxxxxxxxxxxxxxx
REGION: xxxxxxxx
AWS_BUCKET_NAME: xxxxxxx.xxx
production:
# Database
AWS_SECRET_ACCESS_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxx
AWS_ACCESS_KEY_ID: xxxxxxxxxxxxxxxx
REGION: uxxxxxxx
AWS_BUCKET_NAME: xxxxxxxx.xxx