【Ruby On Rails】RubyAws::Sigv4::Errors::MissingCredentialsErrorについて
エラーの背景
AWS導入後、ローカル環境で開発中のアプリから画像をアップロードし、実際に保存した物がS3に保存されているかを確認しようとしたところ、今回の様なエラーがでました。
エラー文の意味
「読み込めません。認証情報が欠けているので、次のいずれかを用いて認証情報を与えてあげてください」
という感じになります。
:access_key_id
:secret_access_key
:credentials
....
つまり、それらの認証情報を正しく拾って、読み込まれていない可能性があるということです。
確認したこと
S3で保存先できる様にするために、S3でデータが格納される様にバケットは用意しましたし、リージョンやチェックボックスも適切な設定しました。バケットポリシーもユーザーのARN、バケット名を間違いなく入力しました。
そして、ターミナルで環境変数は代入し、confing/environments/production.rbの記述も、config/storage.ymlの記述も正しく行われていることを確認しました。
config.active_storage.service = :amazon
config.active_storage.service = :amazon
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を読み込み直してから、環境変数として追加した変数を使える様にするコマンド。
そりゃ実行していなきゃ、画像アップできませんというエラー出てきますよね。一度間違えたことは次回から忘れずに実行していきたいと思います。
Author And Source
この問題について(【Ruby On Rails】RubyAws::Sigv4::Errors::MissingCredentialsErrorについて), 我々は、より多くの情報をここで見つけました https://qiita.com/NedzumiNeko/items/3cd98f138f89b636af13著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .