首页 > 解决方案 > AWS S3:CORS 配置未实施

问题描述

我正在尝试将网页下载为 PDF。但是由于这个问题,图像没有以 PDF 格式出现:

Access to image at 'https://server.s3-us-west-2.amazonaws.com/images/icon.png' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

为了解决这个问题,我做了以下事情:

在 S3 存储桶 CORS 配置中,我添加了以下代码 -

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>http://localhost:3000/</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

在(反应)前端,我在标签中添加了一个属性crossorigin="anonymous"

<img src={process.env.REACT_APP_AWS_S3_PATH + `icons/${data.displayIcon}`} crossorigin="anonymous" alt="icon"/>

谁能告诉我,我在哪里做错了?

标签: reactjsamazon-web-servicesamazon-s3cors

解决方案


您是否确保存储桶设置为公开?当找不到您需要的文件时,S3 也会返回 cors 错误


推荐阅读