1
0

More than 3 years have passed since last update.

【Ruby On Rails】RubyAws::Sigv4::Errors::MissingCredentialsErrorについて

Last updated at Posted at 2020-11-03

エラーの背景

AWS導入後、ローカル環境で開発中のアプリから画像をアップロードし、実際に保存した物がS3に保存されているかを確認しようとしたところ、今回の様なエラーがでました。

エラー文の意味

スクリーンショット 2020-11-03 21.00.21.png

「読み込めません。認証情報が欠けているので、次のいずれかを用いて認証情報を与えてあげてください」

という感じになります。

:access_key_id
:secret_access_key
:credentials

....

つまり、それらの認証情報を正しく拾って、読み込まれていない可能性があるということです。

確認したこと

S3で保存先できる様にするために、S3でデータが格納される様にバケットは用意しましたし、リージョンやチェックボックスも適切な設定しました。バケットポリシーもユーザーのARN、バケット名を間違いなく入力しました。

そして、ターミナルで環境変数は代入し、confing/environments/production.rbの記述も、config/storage.ymlの記述も正しく行われていることを確認しました。

confing/environments/production.rb
config.active_storage.service = :amazon
confing/environment/development.rb
config.active_storage.service = :amazon
config/storage.yml
amazon:
  service: S3
  access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
  secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
  region: ap-northeast-1
  bucket: バケット名

仮説

ターミナルでの入力が正しく行われていない

仮説を踏まえた作業

vim ~/.zshrcコマンドやsource ~/.zshrcコマンドで正常に動くか確認

結果

source ~/.zshrc を実行していないことが原因でした。

そもそもsource ~/.zshrcとは

vim ~/.zshrcでキーを入力して保存した後に、行うコマンド。.zshrcを読み込み直してから、環境変数として追加した変数を使える様にするコマンド。

そりゃ実行していなきゃ、画像アップできませんというエラー出てきますよね。一度間違えたことは次回から忘れずに実行していきたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0