如何在AWS CloudFront上启用gzip压缩

6
我正在尝试通过CloudFront来压缩我提供的图像。我的来源是S3
根据AWS上的几篇文章/博客,我所做的是:
1)为我想要压缩的对象设置"Content-Length"头。我将值设置为在size属性框中显示的大小相等的值。
2)在我的云分发的Behavior中将Compress Objects Automatically值设置为Yes
3)我使我的对象无效,以从S3获取一个新的副本。
但我仍然无法使CloudFront压缩我的对象。有任何想法吗?
2个回答

11

我正在尝试对 [image] 进行 gzip 压缩。

通常情况下,您不需要对图像进行 gzip 压缩 -- 这样做几乎没有节省带宽的效果,因为网络上使用的几乎所有图像格式都已经被压缩过了。

此外,CloudFront 不支持它。

请参阅 CloudFront 支持压缩的文件类型。这些文件类型是基于文本的格式,往往受益于 gzip 压缩。

如果您真的希望以 gzip 压缩方式提供文件,则可以将文件存储在 S3 中,并且已经经过 gzip 压缩。

$ gzip -9 myfile.png

这将创建一个名为myfile.png.gz的压缩文件。

上传文件到S3时,文件名末尾不需要加上“.gz”。将Content-Encoding:头设置为gzip,并将 Content-Type:头设置为文件的正常正确值,例如image/png

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

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


嗨,Michael,谢谢你的回复。我主要想提高在Google页面速度检查中的得分。 - panipsilos
@gzip 提供了针对文本资源的改进:HTML、JS、CSS,而不是图像。 - Chuck Le Butt

1
如果你想要压缩jpeg/png图片,我建议你先使用像https://tinyjpg.com/这样的在线工具进行压缩。理想情况下,你不需要再进一步压缩图片。使用图像优化工具来压缩图片比使用gzip -9更好,因为它考虑了纹理、颜色和图案等因素。此外,请确保以正确的格式保存文件(jpg实际图片和png矢量图像),这将有助于减小图片的大小。

谢谢,Karan。我会尝试一下。 - panipsilos
@panipsilos,请告诉我们哪种方法有效,因为使用图像压缩技术压缩图像比gzip更好,因为它更适合压缩文本信息。 - Karan Shah
1
嗨,卡兰,你说得对,使用gzip没有意义。目前我使用一些在线工具压缩png / jpg文件。Google页面速度检查停止了抱怨。 - panipsilos
@panipsilos 然后您可以接受我的答案为正确 :) - Karan Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接