rails-logo

[ Rails ] Excon::Error::Forbidden (Expected(200) <=> Actual(403 Forbidden) excon.error.response

 

こんにちは。たなかです。

CarrirerWaveを使ってAWS S3にファイルをアップロードする実装中に以下のエラーがあったのでシェアします。

症状

Completed 500 Internal Server Error in 982ms (ActiveRecord: 4.0ms)Excon::Error::Forbidden (Expected(200) <=> Actual(403 Forbidden)

上記エラーが出て画像のアップロードができない状態。

なにか必要な手順を忘れてないか、確認してみます。

解決方法

carrier waveの設定を見直す!

 
CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',
    aws_access_key_id: 'xxxxxxxxxxxxxxxxxxxx',
    aws_secret_access_key: 'xxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxx',
    region: 'ap-northeast-1'
  }

  config.fog_directory  = 'xxxxxxxx'
  config.cache_storage = :fog
end

AWS S3に作成したバケット名と、CarrierWave設定ファイルのdirectory名に誤りがありました。

設定ファイルを変更したらrailsを再起動。

修正したところ、上記のエラーは解消できました!よかった〜〜!

まとめ

 

己を疑う

 

他プロジェクトのリポジトリから流用した設定ファイルだったので、ディレクトリ名がそのままになってしまっていたのがエラーの原因でした。

 

CarrierWaveなんかは実装時に用意が必要なファイルがいくつかあるので、横着せずに丁寧に一つずつ整えるべきでしたね。

 

短いですが今回はここまで。

スポンサードリンク