ruby-on-rails – rails中的AWS S3 – 如何设置s3_signature_ver
发布时间:2020-12-17 03:17:51 所属栏目:百科 来源:网络整理
导读:我正在尝试设置Amazon Simple Storage Service以用于rails.我收到此错误消息: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 问题是我选择了法兰克福S3区域,并且只支持V4方案. 它与this帖子中的错误消息
我正在尝试设置Amazon Simple Storage Service以用于rails.我收到此错误消息:
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. 问题是我选择了法兰克福S3区域,并且只支持V4方案. s3 = AWS::S3::Client.new(:s3_signature_version => :v4) 我的问题是,我该怎么做?我在哪里放这个代码? 编辑: 我试过把:s3_signature_version => :car_wave.rb中的v4如下所示,但在上传到heroku期间它表示[雾] [警告]无法识别的参数:s3_signature_version,它没有任何区别,我仍然得到错误. 配置/初始化/ 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_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 ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |