LoginSignup
1
1

More than 3 years have passed since last update.

【heroku】S3を用いた画像投稿のエラー解決について( Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError))

Last updated at Posted at 2020-06-13

経緯

どうも、プログラミング(3ケ月)初心者です!
今回は、herokuデプロイしたアプリケーションへ画像投稿できるように、s3を導入しました。
この中で2日苦しんだことがあったので、共有したいと思います。

ちなみに、作業自体は、以下のサイトを参考に実施しました。
herokuでS3に画像をアップロード(Rails)

※今回紹介するコードは全てターミナル上で実行するものになります。

エラーについて

(意気揚々)最初に紹介したページに沿って設定、いざ!!

git push heroku master

(地獄の始まり)あれ、ちゃんと設定したのに…

remote: Tasks: TOP => environment
remote: (See full trace by running task with --trace)
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to dailystack.
remote:

最初のうちはどこがエラー吐いてるのか確認方法もわかりませんでした。

(困惑)まず、ログを見てみるか…

$ heroku logs --tail

heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=dailystack.herokuapp.com request_id=57401fa0-57b2-48ca-96b1-d0b49ad53fa2 fwd="111.239.154.52" dyno= connect= service= status=503 bytes= protocol=https


ふ、ふーん。なるほどね。(やべー、全くわかんない)

(一筋の光)Railsを走らせてみようか。

$ heroku run rails c

Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)

キーが上手く設定せれていないのだろう。
これ以上どう設定すればいいのやら…

解決方法

原因それは…

ずばり、heroku上で環境変数を設定できていなかったことでした。
ずっと、不思議ではありました。
ローカルで設定した環境変数をherokuはどうやって値を引っ張ってるんだろうって。。

はい、そんなことできるわけないですよね笑
できたら環境変数の意味全くないです。

環境変数の設定方法

$ heroku config:set S3_ACCESS_KEY=" <<CSVダウンロードしたAccessキー>> "
$ heroku config:set S3_SECRET_KEY=" <<CSVダウンロードしたSecretキー>> "
$ heroku config:set S3_BUCKET_KEY=" <<S3のBucketの名前>> "
$ heroku config:set S3_REGION=" <<ap-northeast-1>> "

# << >>はわかりやすいように付けているだけです。実際は消してください。 

上記のコマンドでherokuに環境変数を設定してあげます。
最初に紹介したサイトでも一番最後に載ってましたね。。
意味が理解できてなくて飛ばしてました、、てへ

まとめ

さて、いつものことながら、拙いポエムを最後まで読んでいただき、ありがとうございました。

今回重要と感じたのは、エラーが出た時の対応についてです。
初心者の皆さんはherokuでエラーを吐かれても最初、何が起こっているかわからないと思います。

長ったらしかったかも知れませんが、今回は私なりのエラーへのアプローチ方法も記載していますので、何かの参考になれば嬉しいです。

1
1
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
1