首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails回形针错误` `AWS::S3::Errors::BadRequest`出现在` `exists?`和`clear`上

Rails回形针错误` `AWS::S3::Errors::BadRequest`出现在` `exists?`和`clear`上
EN

Stack Overflow用户
提问于 2015-07-15 23:59:52
回答 1查看 637关注 0票数 8

全。

我已经做好了所有的工作:图片正在上传,可以通过回形针和S3通过网络访问,除了当我登录rails c并输入以下内容时:

代码语言:javascript
复制
> 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方法也是如此。还没有找到解决方案。

我有这样的权限策略:

代码语言:javascript
复制
    {
            "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/*"
            ]
        }

感谢您的支持。

EN

回答 1

Stack Overflow用户

发布于 2016-06-03 15:36:39

这可能是您的策略的问题,您可以尝试:

代码语言:javascript
复制
{
  "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操作需要在存储桶级别进行设置,而PutObjectGetObjectDeleteObject则需要针对存储桶中的对象进行设置。为了使答案简短,我省略了其他操作。当然,如果需要的话,您需要重新添加它们。您可以在以下位置找到操作列表以及它们是存储桶操作还是对象操作:http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31435435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档