匿名用户无法启动多部分上传.请验证
Anonymous users cannot initiate multipart uploads. Please authenticate
我得到以下错误-
<Error>
<Code>AccessDenied</Code>
<Message>Anonymous users cannot initiate multipart uploads. Please authenticate.</Message>
<RequestId>0C687E53286678DE</RequestId>
<HostId>eqEEEENy6phBYvOySn3gOsbk9wJYjbE/yWK6MBtmR0M4Ir0TEdh9SfApX/EdZZ6sZ7Mc/wSwh0U=</HostId>
</Error>
当我调用AWS API从JS启动多部分上传时,我已经按照其他用户在其他讨论中的建议,在我的策略中添加了PutObjectACL。然而,我仍然不断得到这个错误-
以下是我的政策-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucketName"
},
{
"Sid": "PutObject",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucketName/sampleFile/*"
}
]
}
我正在使用以下ajax调用,并且还在头中传递Authorization-
var url = 'https://bucketName.s3.amazonaws.com/sampleFile?uploads';
j$.ajax({
url: url,
type:"POST",
headers: formHeadersToBeUploaded,
processData:false,
contentType:false,
success: function() {
alert('Successful while submission');
},
error: function(xhr, status, error) {
console.log('Error while sending ' + xhr, status, error);
}
}); // END OF AJAX
授权是-
AWS4-HMAC-SHA256凭证=ACCESSKEYID/2016331/us-east-1/service/AWS4_request,SignedHeaders=授权;主办x-amz-date,签名=09caa362719e578cb48699bbc5bd4e4089335fb56806653186e782ba009ff3a5
感谢任何帮助真的很感激
匿名主体只是"*"。此外,我不会将Listbucket授予匿名者,除非你想让每个人都看到你的bucket。此外,您还需要确保控制对象。此外,对于多部分上传,您希望启用一个生命周期策略来删除失败的上传。
当您满足bucket所有者的要求时,上传需要包括CLI的罐装所有bucket所有者完全控制,这看起来像
aws s3 cp hello.json s3://bucketname/sampleFile/hello.json --no-sign-request --all bucket-owner-full-control
S3 Bucket策略
{
"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"
}
}
}
]
}
要清理不完整的多部分上传,请转到buckets管理选项卡并创建新的生命周期。有一个选项可以在设定的天数后"清理不完整的多部分上传"。
相关文章:
- 如何使用 jQuery 验证多个相同的输入字段
- 如何在一个表单标记中验证多个字段集
- 如何验证多个单选按钮
- 如何在提交时验证多个复选框
- 如何验证多个模式
- jQuery:验证多封电子邮件
- 验证多个URL输入字段
- 在 JavaScript 中使用 for 循环验证多个下拉列表
- 多个jQuery验证引导插件不会验证多个表单
- 使用 JavaScript 验证多个表单字段
- 使用 javascript 验证多个选择组
- 如何验证多个表单并使用 ajax 发送电子邮件
- JavaScript 验证多个文件的大小
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 环通并验证多个无线电输入
- 使用 HTML5 验证多个电子邮件地址
- 验证多个克隆输入的总和 100%
- 使用 Node 和 hapijs/joi 验证多值 HTTP 标头
- 角度:验证多个依赖字段
- 在单击和取消单击时验证多个选择器