在我的iOS应用中,我最近将AWS iOS
库更改为1.7.0(从1.6.0开始),支持恢复/暂停分段上传。因此,所有大于5MB
的文件上传都会失败,并使用temporary AWS credentials obtained from TVM
。 (原始凭证工作没有任何问题)。错误为HTTP: 403, S3 Error Code: AccessDenied
。
失败的请求就是这样一个:GET https://s3.amazonaws.com/<my.bucket.name>/?uploads
我不确定此请求是针对什么的,或者为什么会出现权限问题,因为我的TVM get_federation_token
有GET
和{{1访问。
PUT
上传发生在{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:PutObject","s3:GetObject"],
"Resource": ["arn:aws:s3:::my.bucket.name/*"],
"Effect": "Allow"
}
]
}
位置。知道发生了什么事吗?
由于
答案 0 :(得分:3)
更新我发布的初始政策不正确,s3:ListBucketMultipartUploads
仅对广告有效。
S3TransferManager对超过5MB的文件使用分段上传,因此您需要在TVM策略中包含分段上传所需的操作。
{
"Version": "2012-10-17",
"Statement": [
{
"Action":"s3:ListBucketMultipartUploads",
"Resource":"arn:aws:s3:::my.bucket.name",
"Effect": "Allow"
},
{
"Action": ["s3:PutObject","s3:GetObject","s3:ListMultipartUploadParts","s3:AbortMultipartUpload"],
"Resource": ["arn:aws:s3:::my.bucket.name/*"],
"Effect": "Allow"
}
]
}