我试图通过CloudFront
gzip压缩我正在服务的img。我的起源是S3
根据关于aws的几篇文章/博客,我所做的是:
1)为我要压缩的对象设置"Content-Length"
标头。我将值设置为等于size
属性框
2)在我的云分发的Compress Objects Automatically
中将Yes
值设置为Behaviour
。
3)我使我的对象无效,以便从S3
获得一份新的副本。
仍然我无法让CloudFront
gzip我的对象。有什么想法吗?
答案 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中的矢量图像) - 这将有助于减小图像的大小