the*_*are 8 amazon-s3 amazon-web-services cors
我正在尝试将 CORS 策略应用于我的 S3 存储桶,我观察到的是,如果在任何时候修改了 CORS 策略,上传到 S3 的旧文件仍然不使用新的 CORS政策。例如
添加了以下 CORS 政策 -
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://app1.example.com</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)已成功从托管在https://app1.example.com. 我还可以执行 GET 和 DELETE。
现在,我需要将同一个 S3 存储桶用于我的另一个托管应用程序,例如 app2。所以我将 CORS 政策修改为 -
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://app1.example.com</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://app2.example.com</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)现在,当我尝试从 GET 文件 a.jpeg 时https://app2.example.com,我仍然看到以下错误
XMLHttpRequest cannot load <S3 URL>. Origin https://app2.mydomain.com is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)但是,如果我尝试从 上传新文件 b.jpeg https://app2.mydomain.com,一切都会按预期进行。
编辑
我之前忘了提到这一点,但是我们的 S3 存储桶前面有一个 CloudFront CDN,但是我在 Cloudfront 配置中找不到任何与设置 CORS 策略相关的配置。
有没有办法让我们也可以对以前上传的文件执行新的 CORS 政策?或者有没有其他方法可以使这项工作?
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |