Rails CredentialsのRails.application.credentials.dig(:aws, :access_key_id)がnilになる
ruby 2.6.2
rails 5.2.3
プログラミング初心者です。
伝わりにくいかもしれませんが、よろしくお願いします。
RailsでActive Storageの画像の保存先をAmazon S3に変更してherokuでデプロイしました。
アクセスしたところ画面にエラーが出たため、
1 heroku logsでログ確認
2 heroku run rails c
で以下のようなエラー出てました。
発生している問題・エラーメッセージ
Cannot load `Rails.config.active_storage.service`: (Aws::Sigv4::Errors::MissingCredentialsError) missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
デプロイまでの手順ですが、
1 Amazon S3でバケットを用意する
2 「アクセスキー ID」と「シークレットアクセスキー」をつくる
3 **gem "aws-sdk-s3"**追加
4 config/environments/production.rbを
config.active_storage.service = :amazonに変更
5 config/storage.ymlを↓
amazon: service: S3 access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> region: ap-northeast-1 bucket: my-blog-app-rails<バケットの名前>
6 EDITOR=vim rails credentials:editでcredentials.yml.encを作成 ↓
# aws: # access_key_id: <自分のアクセスキーaccess_key_id> # secret_access_key: <自分のシークレットアクセスキーsecret_access_key> # Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies. secret_key_base: 833acf416fa565080251c0d0824119a5ec1bae803e2c2b463cef9a5c3d1d658e3ffea6b5484bef0796bd31072efe0eff174f8d156097c9ad8f353dbea663fd57
7 heroku config:set RAILS_MASTER_KEY=<マスターキーの中身>で環境変数を作る
参考資料にしてやりました↓
https://qiita.com/hmmrjn/items/7cc5e5348755c517458a
試したこと
rails console内で↓
[1] pry(main)> Rails.application.credentials.dig(:aws, :access_key_id) => nil [2] pry(main)> Rails.application.credentials.dig(:aws, :secret_access_key) => nil [3] pry(main)> Rails.application.credentials.secret_key_base => "833acf416fa565080251c0d0824119a5ec1bae803e2c2b463cef9a5c3d1d658e3ffea6b5484bef0796bd31072efe0eff174f8d156097c9ad8f353dbea663fd57"
そしたらなぜかnilが帰ってきます。
credentials.yml.encの記述が悪いですか?
あまりいいとは思いませんが、config/storage.ymlに直接「アクセスキー ID」と「シークレットアクセスキー」を打ったらちゃんと接続出来て、バケットの中に写真が入ってました。
申し訳ございませんが、教えてください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。