やりたいこと
本番環境でRailsからS3へファイルアップロードする時のエラーを解決したい。
環境
- rails 6.14
- gem 'aws-sdk-rails'
- gem 'aws-sdk-s3', '~> 1'
- ECS(Fargate)
結論
ECSの資格情報をRailsに与えることで解決。
app/controllers/rails_controller.rb
内の記述を以下に書き換える。
app/controllers/rails_controller.rb(修正後)
s3 = Aws::S3::Resource.new(
region: @region,
credentials: Aws::ECSCredentials.new
)
app/controllers/rails_controller.rb(修正前)
s3 = Aws::S3::Resource.new(
region: @region,
credentials: Aws::Credentials.new(
ENV['AWS_ACCESS_KEY'],
ENV['AWS_SECRET_KEY']
)
)