匿名用户无法启动分段上传。请验证

时间:2016-03-30 03:48:13

标签: amazon-s3

我收到以下错误 - AccessDenied 匿名用户无法启动分段上传。请验证。 0C687E53286678DE eqEEEENy6phBYvOySn3gOsbk9wJYjbE / yWK6MBtmR0M4Ir0TEdh9SfApX / EdZZ6sZ7Mc / wSwh0U =

当我调用AWS API从JS启动多部分上传时 - 我已经在我的策略中添加了PutObjectACL,正如其他用户在其他讨论中所建议的那样。但是我仍然会收到此错误 -

以下是我的政策 -

{     "版本":" 2012-10-17",     "陈述":[         {             " Sid":" ListBucket",             "效果":"允许",             "校长":{                 " AWS":" "             },             "行动":" s3:ListBucket",             "资源":" arn:aws:s3 ::: bucketName"         },         {             " Sid":" PutObject",             "效果":"允许",             "校长":{                 " AWS":" "             },             "行动":" s3:PutObject",             "资源":" arn:aws:s3 ::: bucketName / sampleFile / *"         }     ] }

我正在使用跟随ajax调用,并且还在标题中传递Authorization -             var url =' https://bucketName.s3.amazonaws.com/sampleFile?uploads';

Ĵ$就({                 url:url,                 类型:" POST&#34 ;,                 headers:formHeadersToBeUploaded,                 过程数据:假的,
                的contentType:假的,                成功:function(){                     提醒('提交时成功');
                },             错误:功能(xhr,状态,错误){
                console.log('发送时出错' + xhr,状态,错误);                 }             }); //结束AJAX

授权是 - AWS4-HMAC-SHA256 Credential = ACCESSKEYID / 20160331 / us-east-1 / service / aws4_request,SignedHeaders = authorization; host; x-amz-date,Signature = 09caa362719e578cb48699bbc5bd4e4089335fb56806653186e782ba009ff3a5

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

匿名主体只是“ *”。另外,除非您希望所有人看到您的存储桶,否则我不会将Listbucket授予匿名用户。另外,您还想确保对对象的控制。另外,对于分段上传,您希望启用生命周期策略以删除失败的上传。

当您对存储桶拥有者提出要求时,上载需要将所有存储桶拥有者完全控制的罐头控件包含在CLI中,

aws s3 cp hello.json s3://bucketname/sampleFile/hello.json --no-sign-request --all bucket-owner-full-control

S3存储桶策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PutObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucketName/sampleFile/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}

要清理不完整的分段上传,请转到存储桶的“管理”选项卡并创建一个新的生命周期。在设定的天数后,可以选择“清理不完整的分段上传”。