将文件上传到亚马逊Web服务器

问题描述:

我试图使用亚马逊网络服务上传文件,但我得到这个错误,如下图所示,因为其中的文件不会被上传到服务器:将文件上传到亚马逊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响应的原因?在此先感谢

您需要提供更多详细信息。你在使用哪个客户端?从外观上看,有一项政策明确否认上传。

它看起来像你的用户没有适当的特定S3存储桶的权限。使用AWS控制我们的IAM以分配适当的权限,包括写入。

更重要的是立即使密钥/秘密对无效,并重命名该桶。 从来没有在开放的网站上分享我们的密码。在阅读本文时,有人可能已经在使用您的凭据。

+0

慢下来。 'AWSAccessKeyId'是**不**敏感数据。签名或政策也不是。我看到的帖子中没有任何敏感内容,甚至在它被编辑之前。这是上传后的标准表单,设计为可以在网站的HTML中显示,也可以是公开的。 –

阅读错误:Invalid according to Policy: Policy Condition failed: [\"starts-with\", \"$filename\", \"\"]

您的保单文件对您没有见面的上传进行了限制,并且S3本质上是否认上传,因为您已将其告知。

没有理由在签署的政策文件中包含此条件。根据文件,这意味着你期望一个名为filename的表单字段不能为空。但是没有这种形式领域。从你的政策中删除这个,上传应该可以工作。