如何在AWS CloudFront上启用gzip压缩

时间:2017-01-31 21:16:17

标签: amazon-web-services amazon-s3 gzip amazon-cloudfront

我试图通过CloudFront gzip压缩我正在服务的img。我的起源是S3

根据关于aws的几篇文章/博客,我所做的是:

1)为我要压缩的对象设置"Content-Length"标头。我将值设置为等于size属性框

上显示的大小

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

3)我使我的对象无效,以便从S3获得一份新的副本。

仍然我无法让CloudFront gzip我的对象。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

  

我正在尝试gzip压缩[image]

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

此外,CloudFront不支持它。

有关支持的文件格式,请参阅File Types that CloudFront Compresses。它们是基于文本的格式,通常会受益于gzip压缩。

如果确实希望gzip压缩文件,则可以将文件存储在S3中,已经gzip压缩。

$ gzip -9 myfile.png

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

将文件上传到S3 ,而不是 .gz。将Content-Encoding:标头设置为gzip,并将Content-Type:标头设置为文件的正常,正确值,例如image/png

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

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

答案 1 :(得分:1)

如果您正在尝试gzip jpegs / png,我建议您先使用this answer

等工具在线压缩它们

您无需进一步理想地压缩图像。使用图像优化工具压缩图像比使用gzip -9更有效,因为它考虑了纹理,颜色和图案等。

另外,请确保以适当的格式保存文件(jpg中的实际图像和png中的矢量图像) - 这将有助于减小图像的大小