前提
アプリケーションで投稿画像の保存先をローカル環境からAWS S3上に変更したいと思っています。
・S3登録・各種設定、aws-sdk-s3のgemインストール
・config/environments/development.rbにて
→config.active_storage.service = :amazon に変更
・config/storage.yml内に:amazonの内容を記述↓
・vim ~/.bash_profileで環境変数を設定し、適用後ターミナルの再起動
・アプリケーション起動(Aws::Sigv4::Errors::MissingCredentialsError発生)
:localの状態では正常に表示されるのですが:amazonに変更すると既存のものも含めすべての画像が表示されなくなってしまうので、:amazonの環境変数の読み込み付近でうまくいっていないと思っているのですが原因がわかりません…。
発生している問題・エラーメッセージ
・保存先を:amazonに変更後、サーバーを再起動しアプリを立ち上げるとAws::Sigv4::Errors::MissingCredentialsErrorが表示される
・更新すると一度はエラーが表示されなくなるが、実際に画像を投稿しようとするとNoMethodErrorが表示される
エラーメッセージ:Aws::Sigv4::Errors::MissingCredentialsError Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
エラーメッセージ:NoMethodError in *****Controller#**** undefined method `upload' for nil:NilClass
補足情報(FW/ツールのバージョンなど
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: (設定したバケット名)
あなたの回答
tips
プレビュー