Gzip 与 Amazon S3/Cloudfront 失败

Posted

技术标签:

【中文标题】Gzip 与 Amazon S3/Cloudfront 失败【英文标题】:Gzip with Amazon S3/Cloudfront Fail 【发布时间】:2016-02-08 16:15:37 【问题描述】:

我有一个网站托管在 Amazon s3 上并通过 Cloudfront 分发。我正在尝试提供 gzip 文件。到目前为止,我已经完成了以下工作: 1)压缩我的文件。

2) 将我的 gzip 文件上传到 s3。我现在在存储桶中有未压缩和 gzip 压缩的副本。示例:style.css 和 style.css.gz 在桶中

3) 我公开了这些文件。

4) 我检查了文件上的元数据,亚马逊似乎已经输入了 Content-Type: application/x-gzip。我认为这是正确的。

5) 然后我通过转到元数据并添加一条新的元数据来添加 Content-Encoding:Content-Encoding: gzip

我以为这就是我所要做的,但是当我现在访问我的网页时,它只是下载 html 文件的副本而不是显示它们。我错过了什么吗?我是这里的初学者,所以任何事情都有帮助。谢谢

【问题讨论】:

【参考方案1】:

Content-Type: application/x-gzip 是错误的。内容类型必须设置为文件的实际内容类型,例如text/html

Content-Encoding: gzip 是正确的,是必需的。

【讨论】:

非常感谢!我试过了,页面正在加载,但它似乎仍然没有为浏览器提供 gzip 格式的服务。还有什么我想念的吗?非常感谢 它不会神奇地提供 gzip 压缩的内容,您必须使用 .gz 链接。或者,只保存 only 文件的 gzip 副本,不带 .gz... 例如,将 gzip 文件另存为 index.html、content-type text/html、content-encoding gzip...我就是这样做的。 @Michael-sqlbot 在谷歌搜索我的问题的答案时,我不断地在你的答案上发生。你介意看看:***.com/questions/35590622/…? 大声笑,@AR7,我的名声在我之前。其实,我已经看过了。 :) 直到明天我才有机会进行任何测试,但是我发现您的问题没有明显错误……您正在做什么让 CloudFront 为您处理 gzipping(上面的问题可以追溯到之前CloudFront 发布了该功能)应该工作。

以上是关于Gzip 与 Amazon S3/Cloudfront 失败的主要内容,如果未能解决你的问题,请参考以下文章

通过 S3 从 Amazon CloudFront 提供 gzip 后的 CSS 和 JavaScript

如何在 Amazon Linux 2 平台上使用 Elastic Beanstalk 部署的 Node Js 中实现 gzip 压缩?

Amazon emr:最佳压缩/文件格式

在 Amazon s3 中将 Spark RDD 编写为 Gzipped 文件

弹性豆茎 gzip Python & Django

Spring gzip 与 Tomcat gzip