Amazon s3 AmazonS3是否需要时间更新CORS设置?多久?
最近,我启用了AmazonS3+CloudFront作为rails应用程序的CDN。为了使用字体资源并在Firefox或IE中显示它们,我必须在S3存储桶上启用CORSAmazon s3 AmazonS3是否需要时间更新CORS设置?多久?,amazon-s3,ruby-on-rails-3.2,font-face,cors,amazon-cloudfront,Amazon S3,Ruby On Rails 3.2,Font Face,Cors,Amazon Cloudfront,最近,我启用了AmazonS3+CloudFront作为rails应用程序的CDN。为了使用字体资源并在Firefox或IE中显示它们,我必须在S3存储桶上启用CORS <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我应该在哪里看到
“访问控制-允许来源”
?S3是否需要时间更新CORS设置?如果邮件头正在缓存,是否可以强制其过期?尝试发送原始邮件头:
$ curl -v -H "Origin: http://example.com" -X GET https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz > /dev/null
然后,输出应显示您正在查找的CORS响应头:
< Access-Control-Allow-Origin: http://example.com
< Access-Control-Allow-Methods: GET
< Access-Control-Allow-Credentials: true
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
有关如何使用cURL调试CORS请求的其他信息,请参见:
请注意,有不同类型的CORS请求(简单和飞行前),可以在这里找到一个关于这些差异的很好的教程:
希望这有帮助 试试这些:
*
您测试CORS的方式有一些问题
curl --request GET https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz -H "http://google.com"
回答标题中的实际问题: 不,S3似乎没有花费任何时间来传播CORS设置。(截至2019年)
但是,如果您使用的是Chrome(可能还有其他浏览器),那么浏览器可能会缓存CORS设置,因此如果您只进行普通浏览器刷新,则不一定会看到预期的更改。相反,右键单击刷新按钮并选择“空缓存和硬重新加载”(从Chrome73开始)。然后,新的CORS设置将在中生效。如果您没有看到CORS生效,请确保您已经解决了这些问题。理想情况下,这不应该花费太长时间。我已经看到它需要几分钟的时间了。@Keshi感谢链接的帮助。。。我没有意识到您必须让请求中的Origin标头与指定CORSRule中的至少一个AllowedOrigin元素匹配,才能将其公开到标头中。。。duh:faceslap:你5秒的参考值是多少?@Zulu:我量过了。我可以在一个浏览器选项卡中进行更改,然后立即切换到另一个选项卡,并进行硬重新加载以测试它,并且更改已经传播。这个过程大约需要5秒钟。我没有试着在这个分辨率下测量它。我的水桶是us-east-1,我在旧金山湾区进行测试。
curl --request GET https://small-read-staging-assets.s3.amazonaws.com/staging/assets/settings_settings-312b7230872a71a534812e770ec299bb.js.gz -H "http://google.com"