経緯
fogを使ってawsに画像をUploadしようとしたらコケた。
調べたらCarrierWaveの公式に書かれていたが、覚書としてまとめておく。
https://github.com/carrierwaveuploader/carrierwave#using-amazon-s3
TL;DR
Ralisでfog、CarrierWave経由でAWS-S3に画像をアップロードさせる場合は、fog
ではなくfog-aws
を使う。
これに伴い設定に一行追加する。
詳細
gemfile
gem 'fog-aws'
# gem 'fog'はいらない
Carrierwave.rb
CarrierWave.configure do |config|
config.storage :fog
config.fog_provider = 'fog/aws' # 追加
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: Rails.application.secrets.aws_access_key_id,
aws_secret_access_key: Rails.application.secrets.aws_secret_access_key,
region: '任意の値'
}
config.fog_directory = '任意の値'
config.asset_host = '任意の値'
end
end