使用carrierwave / fog上传到aws s3时,已禁用对此对象的所有访问

时间:2016-05-13 22:25:58

标签: ruby-on-rails amazon-web-services amazon-s3 carrierwave fog

我尝试上传到s3时遇到此错误。我检查确保我的证书是正确的。这是我得到的错误。

```

Excon::Errors:`:Forbidden: Expected(200) <=> Actual(403 Forbidden)
excon.error.response
  :body          => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId></RequestId><HostId></HostId></Error>"
  :cookies       => [
  ]
  :headers       => {
    "Connection"       => "close"
    "Content-Type"     => "application/xml"
    "Date"             => "Fri, 13 May 2016 22:14:48 GMT"
    "Server"           => "AmazonS3"
    "x-amz-id-2"       => ""
    "x-amz-request-id" => ""
  }
  :host          => "s3.amazonaws.com"
  :local_address => "10.0.0.24"
  :local_port    => 57133
  :path          => "/uploads/script/file/1/Facebook-2006.jpg"
  :port          => 443
  :reason_phrase => "Forbidden"
  :remote_ip     => "54.231.114.148"
  :status        => 403
  :status_line   => "HTTP/1.1 403 Forbidden\r\n"

```

这就是我配置载波/雾的方法 配置/初始化/ 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_SECRET_ACCESS_KEY"] } config.fog_directory = ENV["AWS_S3_BUCKET"] end

2 个答案:

答案 0 :(得分:7)

白痴移动。我正在设置存储桶名称的名称错误。我写了ENV [&#34; AWS_S3_BUCKET&#34;]而不是ENV [&#39; S3_BUCKET_NAME&#39;]。它说访问被拒绝可能是因为它试图访问一个不存在的存储桶或者是s3的根。

答案 1 :(得分:0)

存储桶是否具有公共访问权限?如果是,您可以尝试在雾配置中设置桶的AWS区域吗?