開発環境(ローカル)ではfile、本番環境ではfogとするためには以下の条件式を記述する。
class DocumentUploader < CarrierWave::Uploader::Base
if Rails.env.production?
storage :fog
else
storage :file
end
しかし、これだけでは開発環境(ローカル)で保存ができない!
対処法
以下ファイルを全てコメントアウト
CarrierWave.configure do |config|
require 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
aws_secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
region: 'ap-northeast-1',
path_style: true,
}
config.fog_public = true
config.fog_attributes = {'Cache-Control' => 'public, max-age=86400'}
end
end
ただ、これは暫定対応に過ぎない。。
本番環境デプロイ時にはコメントアウトの解除を忘れないようにする必要あり!
コメント