right_awsとaws/s3を一緒に使うときの注意点
はまったのでメモ。
S3に保存するときは、aws/s3で、SQSを使うときはright_awsと使い分けてたのだけど、S3に保存するときに以下のようなエラーが発生
コード
AWS::S3::S3Object.store("test.mp4",open("aa.mp4"), "test_bucket",:access => :public_read)
エラー内容
E, [2011-12-26T17:05:11.650235 #1903] ERROR -- : wrong number of arguments (5 for 4) (ArgumentError) /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:310:in `send_request_with_body_stream' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/right_http_connection-1.3.0/lib/net_fix.rb:85:in `exec' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/right_http_connection-1.3.0/lib/net_fix.rb:144:in `request' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/connection.rb:45:in `block in request' /Users/yamazaki/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/http.rb:627:in `start' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/connection.rb:52:in `request' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:69:in `request' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:88:in `put' /Users/yamazaki/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:241:in `store' aws_sqs_task.rb:84:in `<main>'
引数間違ってないし、と散々悩んだあげく、requireの順番変更したらうまくいった
before
require 'right_aws' require 'aws/s3'
after
require 'aws/s3' require 'right_aws'