【Rails】S3接続後、ファイルアップロードを本番環境のみとする場合の変更方法

Ruby on Railsアイキャッチ画像

開発環境(ローカル)では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

ただ、これは暫定対応に過ぎない。。

本番環境デプロイ時にはコメントアウトの解除を忘れないようにする必要あり!

コメント