从S3存储桶检索静态图像时访问被拒绝

时间:2019-06-01 23:34:12

标签: reactjs amazon-s3

我正在尝试存储和显示通过React上传的图片。 存储它们可以正常工作。手动打开S3存储桶时,我可以查看它们。 当我尝试显示它们时,出现403错误,如果单击返回给我的链接,则会看到一个xml文件,如下所示:

a[j] == j[a]

这是我的React代码:

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9E7DA968420809CA</RequestId>
<HostId>
vHBWGUStVMowVcphdjBXqetPIPGeV/xSd2aD70GSKqja2QhQgLirz9hcT5zj6bWogI4u4Z/6918=
</HostId>
</Error>

并附有错误图片。 谢谢。

1 个答案:

答案 0 :(得分:0)

错误消息显示Access Denied。这表明该对象不存在,或者请求者没有访问该对象的权限。

您没有在<img>标记中添加任何身份验证,这意味着该对象需要可公开访问才能访问。 (也就是说,S3不知道您是谁,因此它不提供对象。如果可以公开访问对象或存储桶,则可以访问对象 。)

有两种方法可以做到这一点:

  • 您可以使用时段政策
  • 将整个testmypictures存储桶(或其中的一部分)公开
  • 您可以通过指定访问控制列表(ACL)
  • 将单个对象标记为公共对象