Amazon MTurk SDK Ruby gem - RuntimeError: Missing AWSAccessKey

Amazon MTurk SDK Ruby gem - RuntimeError: Missing AWSAccessKey

How/where rails 应用是否指定了 MTurk 密钥和秘密?

Amazon Mechanical Turk SDK gem 文档似乎没有指示 where/how 指定访问密钥和秘密...如果您 运行 他们在 IRB 中的示例代码会提示对于密钥和秘密...但是在一次性配置中在哪里指定它们以便应用程序可以 运行?

例如亚马逊给出了这个代码:

require 'mturk'
@mturk = Amazon::WebServices::MechanicalTurkRequester.new
puts "I have $#{@mturk.availableFunds} in Sandbox"

这会导致 gem 以交互方式提示输入密钥和密码。

改为这样做:

mturk = Amazon::WebServices::MechanicalTurkRequester.new :AWSAccessKeyId => "xxxx", :AWSSecretAccessKey => "yyyy

给出错误信息:

RuntimeError: Missing AWSAccessKey

指定的密钥和秘密绝对正确,因为我可以 copy/paste 它们进入交互式提示并且它工作正常。

如果这在任何地方都有记录,我找不到它,但答案是,与我使用过的所有其他 AWS 库不同,它们将 'secret' 重命名为 :AWSAccessKey

所以这有效:

mturk = Amazon::WebServices::MechanicalTurkRequester.new :AWSAccessKeyId => "xxxx", : AWSAccessKey => "yyyy