その他

AWS S3に画像を保存する時に発生したエラー

2019年10月2日

こんにちは、Nanayakuです。

S3に画像を保存しようとした時に起きたエラーについて説明します。

単純なミスで、環境変数を’’で囲っていなかったことがで原因でした。

下記のコードは本番環境の場合、S3にアクセスし画像を保存するコードです。

ENV[]の[]の中の環境変数を''で囲っていないため、エラーが発生します。

if Rails.env.production?
  CarrierWave.configure do |config|
    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:                ENV[S3_REGION]
    }
    config.fog_directory  =  ENV[S3_BUCKET]
    config.fog_public     = true
    config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" }
  end
  CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/
end

 

EVN[]の環境変数を’’で囲めば、エラーは起きません。

if Rails.env.production?
  CarrierWave.configure do |config|
    config.storage :fog
    config.fog_provider = 'fog/aws'
    config.fog_directory  =  ENV['S3_BUCKET']
    config.fog_credentials = {
      provider:              'AWS',
      aws_access_key_id:     ENV['AWS_ACCESS_KEY_ID'],
      aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
      region:                ENV['S3_REGION'],
      path_style: true
    }
    config.fog_public     = true
    config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" }
  end
end

 

-その他
-, ,

© 2021 Nanayaku blog Powered by AFFINGER5