2013-10-23 192 views
0

在我的iOS应用程序中,我最近将AWS iOS库更改为支持恢复/暂停分段上传的1.7.0(从1.6.0开始)。因此,所有大于5MB的文件上载失败,其中使用temporary AWS credentials obtained from TVM。 (原始凭据无任何问题)。错误是HTTP: 403, S3 Error Code: AccessDeniedAWS S3请求失败,凭据从TVM客户端获取

失败的请求是这个:GET https://s3.amazonaws.com/<my.bucket.name>/?uploads我不知道这个要求是什么,或者为什么有权限问题,因为我的TVM get_federation_tokenGETPUT访问。

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

上传发生在位置/<my.bucket.name>/。任何想法是怎么回事?

感谢

回答

3

UPDATE我发布的最初的政策是不正确的,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" 
    } 
    ] 
} 
+0

我试过但仍然得到相同的“AccessDenied”错误。什么是调试这个好方法? (谢谢你的回答) – aqs

+0

你确定你从设备刷新了凭据并重建了你的TVM策略吗?我已确认此政策按预期工作。 –

+0

我已刷新设备的凭据并在更改策略后重新启动服务器。这是你的意思吗“重建你的TVM pollicy”? – aqs