0

在我的 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我不确定这个请求的目的是什么,或者为什么会出现权限问题,因为我的 TVMget_federation_token拥有GET并且PUT可以访问。

{
"Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["s3:PutObject","s3:GetObject"],
      "Resource": ["arn:aws:s3:::my.bucket.name/*"],
      "Effect": "Allow"
    }
  ]
}

上传正在发生在该位置/<my.bucket.name>/。知道发生了什么吗?

谢谢

4

1 回答 1

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"
    }
  ]
}
于 2013-10-23T17:02:09.197 回答