【发布时间】:2021-02-11 13:15:00
【问题描述】:
我需要更改我的 AWS S3 存储桶 CORS 策略以启用将我的 ReactJS 的文件上传到 AWS S3,但我不断收到此 API 响应:
预期 params.CORSConfiguration.CORSRules 是一个数组。
我现在很茫然。有人可以帮忙吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 cors
我需要更改我的 AWS S3 存储桶 CORS 策略以启用将我的 ReactJS 的文件上传到 AWS S3,但我不断收到此 API 响应:
预期 params.CORSConfiguration.CORSRules 是一个数组。
我现在很茫然。有人可以帮忙吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 cors
我不确定这是否有帮助。我最近遇到了同样的问题,AWS 似乎对我们定义 CORS 配置的方式进行了一些更改。例如,如果您想在过去允许 S3 存储桶上的某些方法,您必须在编辑器上执行以下操作:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
下面的配置等同于上面的配置,但采用数组的形式。
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"HEAD",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]
如果这有帮助,请告诉我。谢谢!
【讨论】:
我们遇到了同样的错误。我们需要两个修复。 (不确定这对您的情况是否有帮助):
【讨论】:
要为您的静态网站配置 CORS,CORS 对象必须采用 JSON 格式 see aws docs cors configuration。要指定要启用 CORS 的存储桶上允许的操作,您必须定义一组 CORS 规则。 CORS 规则是一个数组,其中包含一组对象,其中每个对象对应于特定规则。要了解有关如何定义 CORS 规则的更多信息see aws cors rule。您收到的错误是由于您的 CORS 规则格式不正确。如果您按照@FaitAccompli 的上述示例进行操作,则错误应该得到解决。
【讨论】:
[{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"HEAD",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}]
这对我有用。这需要在 AWS S3“跨域资源共享 (CORS)”部分添加。
这有帮助。
【讨论】: