我尝试上传到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
答案 0 :(得分:7)
白痴移动。我正在设置存储桶名称的名称错误。我写了ENV [&#34; AWS_S3_BUCKET&#34;]而不是ENV [&#39; S3_BUCKET_NAME&#39;]。它说访问被拒绝可能是因为它试图访问一个不存在的存储桶或者是s3的根。
答案 1 :(得分:0)
存储桶是否具有公共访问权限?如果是,您可以尝试在雾配置中设置桶的AWS区域吗?