Amazon web services 源站为S3网站的CloudFront不提供Gzip文件
我已经按照中的所有说明进行了操作,但是gzipping不起作用 我有一个S3存储桶,作为CloudFront用作源的网站Amazon web services 源站为S3网站的CloudFront不提供Gzip文件,amazon-web-services,amazon-s3,gzip,amazon-cloudfront,Amazon Web Services,Amazon S3,Gzip,Amazon Cloudfront,我已经按照中的所有说明进行了操作,但是gzipping不起作用 我有一个S3存储桶,作为CloudFront用作源的网站 自动压缩对象已启用 我提供的文件具有正确的内容类型,如application/javascript和text/css 这些文件在1000和10000000字节之间 据我所知,S3网站提供的文件具有内容长度 为了确保没有缓存任何内容,我将整个S3存储桶作废,并将文件的更新版本上载到S3 另外,我使用的浏览器Chrome也接受Gzip文件 尽管如此,我还是不能去上班。我已经使
已启用自动压缩对象
- 我提供的文件具有正确的内容类型,如
和application/javascript
text/css
- 这些文件在1000和10000000字节之间
- 据我所知,S3网站提供的文件具有
内容长度
- 为了确保没有缓存任何内容,我将整个S3存储桶作废,并将文件的更新版本上载到S3
- 另外,我使用的浏览器Chrome也接受Gzip文件
如果打开chrome控制台,您会注意到S3提供的所有文件都没有被gzip压缩。唯一的gzip文件(如google字体)是我从其他CDN获取的文件。我今天遇到了同样的错误,并通过向S3 bucket添加CORS规则解决了这个问题。此规则确保将内容长度头发送到Cloudfront,以便可以压缩内容: S3>存储桶>权限>CORS配置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
<AllowedHeader>Content-Length</AllowedHeader>
</CORSRule>
</CORSConfiguration>
据我所知,这似乎是一个未记录的要求。我的问题是,我上传的文件专门使用utf-8编码。从文件中:
CloudFront确定文件是否可压缩:
该文件必须是CloudFront压缩的类型
文件大小必须介于1000和10000000字节之间
响应必须包含一个内容长度头,以便CloudFront能够
确定文件大小是否在CloudFront指定的范围内
压缩。如果缺少内容长度头,CloudFront将不会
压缩文件
响应不得包含内容编码标题
由于Cloudfront现在只接受JSON,您必须粘贴以下内容:
[
{
“允许的标题”:[
“授权”,
“内容长度”
],
“允许的方法”:[
“得到”
],
“允许的来源”:[
"*"
],
“公开负责人”:[],
“最大秒数”:3000
}
]
我已经尝试了以上所有方法,但CloudFront仍然没有压缩我的S3存储桶内容
我的问题是,我已经有一个已禁用压缩功能的Cloudfront发行版,我后来打开了它。这在某种程度上不允许考虑压缩。经过许多不成功的解决方法后,我删除了CloudFront发行版,并从一开始就使用压缩功能重新创建了它。这就解决了我的问题。感谢您分享实际链接——这将使人们更容易发现正在发生的任何事情。您的对象存储在S3中,没有内容编码:
标题,对吗?这就是他们应该做的。如果您可以访问世界其他地方的系统,您可以尝试curl-v
,看看通过不同边缘的请求是否有不同的行为。@Michael sqlbot是的,它们只有内容类型
。我注意到的另一件事是,似乎我的index.html实际上正在被gzip压缩,但这只是碰巧不一致,这让我更加困惑。@Michael sqlbot它开始工作了……估计需要一天左右……”在极少数情况下,当CloudFrontEdge位置异常繁忙时,某些文件可能不会被压缩这是一个新功能,可能是一个非常流行的功能。。。他们可能在您的边缘位置满足了一些临时的意外需求。(也就是说,你正在通过的测试。)“召集”这样的人通常会受到社区的反对。如果您正确地标记了一个问题,专家将看到您的问题。注意:上面的源示例中的内容长度拼写错误(由于编辑少于6个字符,因此不允许我进行修复)。很好!谢谢我的js文件超过10000000字节。有没有办法将js文件压缩到10000000字节以上?谢谢,这是一个非常有用的答案。