2016-06-22 124 views
-1

我試圖使用亞馬遜網絡服務上傳文件,但我得到這個錯誤,如下圖所示,因爲其中的文件不會被上傳到服務器:將文件上傳到亞馬遜Web服務器

{ 
    "data": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Invalid according to Policy: Policy Condition failed: [\"starts-with\", \"$filename\", \"\"]</Message><RequestId>7A20103396D365B2</RequestId><HostId>xxxxxxxxxxxxxxxxxxxxx</HostId></Error>", 
    "status": 403, 
    "config": { 
     "method": "POST", 
     "transformRequest": [null], 
     "transformResponse": [null], 
     "url": "https://giblib-verification.s3.amazonaws.com/", 
     "data": { 
      "key": "@usc.edu/1466552912155.jpg", 
      "AWSAccessKeyId": "xxxxxxxxxxxxxxxxx", 
      "acl": "private", 
      "policy": "xxxxxxxxxxxxxxxxxxxxxxx", 
      "signature": "xxxxxxxxxxxxxxxxxxxx", 
      "Content-Type": "image/jpeg", 
      "file": "file:///storage/emulated/0/Android/data/com.ionicframework.giblibion719511/cache/1466552912155.jpg" 
     }, 
     "_isDigested": true, 
     "_chunkSize": null, 
     "headers": { 
      "Accept": "application/json, text/plain, ​*/*​" 
     }, 
     "_deferred": { 
      "promise": {} 
     } 
    }, 
    "statusText": "Forbidden" 
} 

誰能告訴我什麼是禁止403響應的原因?在此先感謝

回答

1

您需要提供更多詳細信息。你在使用哪個客戶端?從外觀上看,有一項政策明確否認上傳。

0

它看起來像你的用戶沒有適當的特定S3存儲桶的權限。使用AWS控制我們的IAM以分配適當的權限,包括寫入。

更重要的是立即使密鑰/祕密對無效,並重命名該桶。 從來沒有在開放的網站上分享我們的密碼。在閱讀本文時,有人可能已經在使用您的憑據。

+0

慢下來。 'AWSAccessKeyId'是**不**敏感數據。簽名或政策也不是。我看到的帖子中沒有任何敏感內容,甚至在它被編輯之前。這是上傳後的標準表單,設計爲可以在網站的HTML中顯示,也可以是公開的。 –

0

閱讀錯誤:Invalid according to Policy: Policy Condition failed: [\"starts-with\", \"$filename\", \"\"]

您的保單文件對您沒有見面的上傳進行了限制,並且S3本質上是否認上傳,因爲您已將其告知。

沒有理由在簽署的政策文件中包含此條件。根據文件,這意味着你期望一個名爲filename的表單字段不能爲空。但是沒有這種形式領域。從你的政策中刪除這個,上傳應該可以工作。