【发布时间】:2015-03-07 00:37:17
【问题描述】:
我正在尝试设置 Amazon Simple Storage Service 以与 rails 一起使用。我收到此错误消息:
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
问题是我选择了法兰克福S3地区,那里只支持V4方案。 这与this 帖子中的错误消息相同,可引导您找到解决方案 here,说明如何“在构建客户端时将 :s3_signature_version 参数设置为 :v4”。命令是:
s3 = AWS::S3::Client.new(:s3_signature_version => :v4)
我的问题是,我该怎么做?我把这段代码放在哪里?
编辑:
我尝试将:s3_signature_version => :v4 放入carrier_wave.rb 中,如下所示,但是在上传到heroku 的过程中它说[fog][WARNING] Unrecognized arguments: s3_signature_version,它没有任何区别,我仍然得到错误。
config/initializers/carrier_wave.rb:
if Rails.env.production?
CarrierWave.configure do |config|
config.fog_credentials = {
# Configuration for Amazon S3
:provider => 'AWS',
:aws_access_key_id => ENV['S3_ACCESS_KEY'],
:aws_secret_access_key => ENV['S3_SECRET_KEY'],
:s3_signature_version => :v4
}
config.fog_directory = ENV['S3_BUCKET']
end
end
编辑:
我使用北加利福尼亚地区创建了一个新存储桶,这不应该是一个问题,但我仍然收到完全相同的错误消息。
编辑:
这也没什么区别:
if Rails.env.production?
CarrierWave.configure do |config|
config.fog_credentials = {
# Configuration for Amazon S3
:provider => 'AWS',
:aws_access_key_id => ENV['S3_ACCESS_KEY'],
:aws_secret_access_key => ENV['S3_SECRET_KEY']
}
config.fog_directory = ENV['S3_BUCKET']
config.fog_attributes = {:s3_signature_version => :v4}
end
end
【问题讨论】:
-
在您的 ruby 代码中使用 AWS 开发工具包
-
但仅此而已-我不知道那在哪里。我把它放在哪个文件里?我是 AWS、S3 和所有这些的新手,发现它相当莫名其妙。 ——
-
现在我只想为您在支持 AWS forums.aws.amazon.com/thread.jspa?threadID=168816987654323@ 中提出的问题链接这个问题
标签: ruby-on-rails amazon-web-services amazon-s3