如何在 AWS CloudFront 上启用 gzip 压缩

How to enable gzip compression on AWS CloudFront

我正在尝试 gzip 压缩我通过 CloudFront 提供的 img。我的来源是S3

基于aws上的几个articles/blogs,我做的是:

1) 设置"Content-Length" header 为我要压缩的object。我将值设置为 size 属性 框

上显示的大小

2) 在我的云分布Behaviour中将Compress Objects Automatically值设置为Yes

3) 我使我的 object 失效,以便从 S3 获得新副本。

我仍然无法使 CloudFront gzip 我的 object。有什么想法吗?

I'm trying to gzip compress the [image]

您通常不需要 gzip 图像 -- 这样做节省的带宽非常少(如果有的话),因为网络上使用的几乎所有图像格式都已经过压缩。

此外,CloudFront 不支持它。

有关支持的文件格式,请参阅 File Types that CloudFront Compresses。它们是 text-based 格式,往往受益于 gzip 压缩。

如果您真的想要 gzip 提供的文件,您可以将文件存储在 S3 中,已经 gzip 过。

$ gzip -9 myfile.png

这将创建一个 gzip 文件 myfile.png.gz

将文件上传到 S3 最后没有.gz。将 Content-Encoding: header 设置为 gzip 并将 Content-Type: header 设置为文件的正常正确值,例如 image/png.

这会破坏任何不理解 Content-Encoding: gzip 的浏览器,但应该没有正在使用的浏览器具有该限制。

请注意,上面的 -9 表示最大压缩。

如果您尝试 gzip jpegs/pngs,我建议您先使用 https://tinyjpg.com/

等工具在线压缩它们

理想情况下,您不需要进一步压缩图像。使用图像优化工具压缩图像比使用 gzip -9 更好,因为它考虑了纹理、颜色和图案等。

此外,请确保以正确的格式保存文件(实际图像为 jpg,矢量图像为 png)- 这将有助于减小图像的大小