CloudFront 中 S3 CORS 中的 AllowedHeader 选项

Yve*_* M. 5 amazon-s3 amazon-web-services cors amazon-cloudfront

我的用例很简单,我在 S3 中有静态文件(JS、图像),我想通过 CloudFront CDN 共享到多个源。

我只想GET从 S3 公开允许,我的实际配置如下:

<CORSRule>
    <ID>BucketCORSRules</ID>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3600</MaxAgeSeconds>
</CORSRule>
Run Code Online (Sandbox Code Playgroud)

一切都运行良好,只是有时"no 'Access-Control-Allow-Origin' header is present"在放置新的 S3 对象时会随机出现错误。

我的问题是关于AllowedHeader.

我已经阅读过应该设置为or的所有地方(这里是 SO再次是 SO这里是 AWS),但为什么呢?AllowedHeader*Authorization

此 CORS 配置不应该与没有任何CORS 简单请求的情况AllowedHeader一起使用吗?什么可能导致随机"no 'Access-Control-Allow-Origin' header is present"错误?

AllowedHeader元素通过标头指定预检请求中允许使用哪些标头Access-Control-Request-Headers。标头中的每个标头名称Access-Control-Request-Headers必须与规则中的相应条目匹配。Amazon S3 将仅发送请求的响应中允许的标头。有关可在 Amazon S3 请求中使用的标头示例列表,请转到Amazon Simple Storage Service API 参考指南中的常见请求标头。

来源:http ://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#cors-allowed-headers