Thursday, 26 December 2019

File upload on carrierwave S3


gem 'mini_magick'
gem "carrierwave"
gem 'fog'
gem "fog-aws"

==================================

Uploader on:

storage :fog

==================================

For this Storage on AWS With Fog


config/initializers/carrierwave.rb


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

No comments:

Post a Comment