2013-10-23 243 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