2016年11月9日水曜日

aws-sdk v2でS3操作するとエラー出た

rubyのaws-sdkでS3の操作しようとしたら、エラー出たのでその時の対応。
sdkのバージョンは以下で指定
gem 'aws-sdk', "~>2.1"

出たエラーは以下のようなもの
F, [2016-11-08T11:23:44.711503 #21962] FATAL -- : 
Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):
  app/xxx:12:in `new'
  app/xxx:12:in `update_s3_bucket_acl'
  app/xxx.rb:338:in `update_s3_bucket_acl'
  app/xxx.rb:323:in `block in update'
  app/xxx.rb:306:in `update'
  config/initializers/quiet_assets.rb:6:in `call_with_quiet_assets'

そのときのコードの一部がこれ
require 'aws-sdk'

s3 = Aws::S3::Resource.new(
  access_key_id: #{access_key_id},
  secret_access_key: #{secret_access_key}
)

bucket = s3.bucket(bucket_name)

対応内容はエラーにまんま書いてあるように、regionを追加しました
s3 = Aws::S3::Resource.new(
  region: 'ap-northeast-1',
  access_key_id: #{access_key_id},
  secret_access_key: #{secret_access_key}
)

S3ってregion関係ないと思うので指定いらなそうなのになと思うのは勉強不足なのでしょう...


参考URL
http://qiita.com/rikitoro@github/items/45f9c85c218343e69014
http://stackoverflow.com/questions/28825047/aws-sdk-v2-for-s3

0 件のコメント:

コメントを投稿