gpt4 book ai didi

ruby-on-rails - AWS S3 in rails-如何设置s3_signature_version参数

转载 作者:行者123 更新时间:2023-12-04 05:58:27 24 4
gpt4 key购买 nike

我正在尝试将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

最佳答案

我遇到的问题是,Spree v2.3已修复为aws-sdk v1.27.0。但是参数s3_signature_version是在v1.31.0中引入的(中国默认设置)。

因此,在我的情况下,法兰克福的以下配置已被完全忽略:

AWS.config(
region: 'eu-central-1',
s3_signature_version: :v4
)

关于ruby-on-rails - AWS S3 in rails-如何设置s3_signature_version参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27847888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com