Ruby on rails Rails回形针错误'AWS::S3::Errors::BadRequest`on`存在?`和'clear'`
全部 我一切正常:图像正在上传,可以通过Web使用回形针和S3访问,除非我登录Ruby on rails Rails回形针错误'AWS::S3::Errors::BadRequest`on`存在?`和'clear'`,ruby-on-rails,amazon-web-services,amazon-s3,paperclip,Ruby On Rails,Amazon Web Services,Amazon S3,Paperclip,全部 我一切正常:图像正在上传,可以通过Web使用回形针和S3访问,除非我登录rails c并键入以下内容: > User.first.avatar.exists? [AWS S3 400 0.093287 0 retries] head_object(:bucket_name=>"mozg-staging-static",:key=>"users/avatars/000/000/001/original/289736.jpg") AWS::S3::Errors::BadReq
rails c
并键入以下内容:
> User.first.avatar.exists?
[AWS S3 400 0.093287 0 retries] head_object(:bucket_name=>"mozg-staging-static",:key=>"users/avatars/000/000/001/original/289736.jpg") AWS::S3::Errors::BadRequest AWS::S3::Errors::BadRequest
=> false
clear
方法也是如此。还没有找到解决办法
我有以下许可政策:
{
"Sid": "Stmt1436958517000",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetBucketAcl",
"s3:GetBucketCORS",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListBucketVersions",
"s3:ListMultipartUploadParts",
"s3:ListObjects",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:RestoreObject"
],
"Resource": [
"arn:aws:s3:::mozg-staging-static",
"arn:aws:s3:::mozg-staging-static/*"
]
}
感谢您的支持。这可能是您的政策有问题,您可以尝试:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": ["arn:aws:s3:::mozg-staging-static"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::mozg-staging-static/*"]
}
]
}
ListBucket
操作需要在bucket级别设置,而PutObject
、GetObject
和DeleteObject
需要针对bucket中的对象进行设置。为了简短起见,我省略了其他动作。如果需要,您当然需要将它们添加回。您可以在此处找到动作列表,以及它们是bucket动作还是object动作:什么版本的回形针?什么版本的aws sdk?是否存在?
和清除在运行服务器时起作用,即使它们在控制台中不起作用?(例如,将您在控制台中运行的那一行添加到某个控制器中——它是否记录了相同的错误?)