Carrierwave上传与Amazon S3 - 403 Forbidden错误 [英] Carrierwave Upload with Amazon S3 - 403 Forbidden Error

查看:2200
本文介绍了Carrierwave上传与Amazon S3 - 403 Forbidden错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用Carrierwave与Amazon S3在我的Rails应用程序,我不断收到错误

I am attempting to use Carrierwave with Amazon S3 in my Rails app, and I keep getting the error

"Excon::Errors::Forbidden (Expected(200) <=> Actual(403 Forbidden)."  
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.

我也收到警告

I also receive the warning

"[WARNING] fog: the specified s3 bucket name() is not a valid dns name, which will negatively impact performance.  For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html"  

配置/初始化/ carrierwave.rb:

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',                      
    aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
    aws_secret_access_key: ENV["AWS_ACCESS_KEY"]
  }
  config.fog_directory = ENV["AWS_BUCKET"]                
end

我的桶的名字是buildinprogress

My bucket name is "buildinprogress"

我已经双重检查,我的访问密钥ID和访问密钥是正确的。

I've double checked that my access key ID and access key are correct.

我该如何解决这个错误?

How can I fix this error??

推荐答案

这是雾/取消执行委员会的问题,即不停地抛出随机误差对我来说太。

It is a problem with Fog/Excom that kept throwing random errors for me too.

我的修正是删除宝石'雾'并将其替换创业板carrierwave-AWS代替。

My fix was to remove gem 'fog' and replace it with gem 'carrierwave-aws' instead.

然后,在你的 * _ uploader.rb 更改

storage :fog ---> storage :aws

和更新您的 carrierwave.rb 文件例:

  CarrierWave.configure do |config|
    config.storage    =  :aws                  # required
    config.aws_bucket =  ENV['S3_BUCKET']      # required
    config.aws_acl    =  :public_read

    config.aws_credentials = {
      access_key_id:      ENV['S3_KEY'],       # required
      secret_access_key:  ENV['S3_SECRET']     # required
    }

    config.aws_attributes = {
                              'Cache-Control'=>"max-age=#{365.day.to_i}",
                              'Expires'=>'Tue, 29 Dec 2015 23:23:23 GMT'
                            }
  end

有关详细信息请查看 carrierwave-AWS GitHub的页面

For more info check out the carrierwave-aws GitHub page

这篇关于Carrierwave上传与Amazon S3 - 403 Forbidden错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆