rails6.1.0
元々S3のみの利用だったのでaws-sdk-s3だけ使用してたのですが、他も使うため
aws-sdkにgemの指定を変えました。
バージョン指定なしで最新のv3をインストールしました。
gem 'aws-sdk'
ローカルで特に問題なく、herokuへpushしようとしたところ失敗しました。
NameError: uninitialized constant Aws
1行目でエラー
ruby
1Aws.config.update({ 2 region: 'ap-northeast-1', 3 credentials: Aws::Credentials.new(Rails.application.credentials.aws[:access_key_id], Rails.application.credentials.aws[:secret_access_key]), 4}) 5 6S3_BUCKET = Aws::S3::Resource.new.bucket(Rails.application.credentials.aws[:bucket]) 7 8
エラーメッセージでググるとバージョン違いのようでした。
herokuのドキュメントを見ると、確かにherokuはv2でした。※ただrails5までのドキュメントっぽい
リンク内容
herokuのドキュメントに合わせて、gemを編集しv2を入れ直しました。
gem 'aws-sdk', '~> 2'
ところがbundle installすると、非推奨版だと表示されました。
しかしherokuドキュメントがv2なのでとりあえず無視しました。
AWS SDK For Ruby V2 has been marked as deprecated. Please upgrade to AWS SDK For Ruby V3.
ここでいったんローカルで動くかrails sすると
エラーになり起動できなくなりました。
やはりv3を入れろと怒られました。
Version 2 of the Ruby SDK will enter maintenance mode as of November 20, 2020. To continue receiving service updates and new features, please upgrade to Version 3. More information can be found here: https://aws.amazon.com/blogs/developer/deprecation-schedule-for-aws-sdk-for-ruby-v2/
やはりv3が適切のようですが、そうすると最初のエラーはどのようにすれば解消できるでしょうか?
分かる方教えて下さい。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。