Ruby on rails Rails回形针错误'AWS::S3::Errors::BadRequest`on`存在?`和'clear'`

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

全部

我一切正常:图像正在上传,可以通过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::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?
是否存在?
清除
在运行服务器时起作用,即使它们在控制台中不起作用?(例如,将您在控制台中运行的那一行添加到某个控制器中——它是否记录了相同的错误?)