gzip不适用于aws s3资产

时间:2016-08-11 13:48:37

标签: javascript amazon-s3 gzip

我已将javascript文件上传到aws s3存储桶并进行gzip压缩,我已设置以下元数据。我也把文件公之于众。

Content-Type: application/x-javascript

已经存在一个元数据

This webpage is not available ERR_CONTENT_DECODING_FAILED

从浏览器访问

时出错
https://s3-url.amazonaws.com/bucket-name/assets/js/angular.js

像这样访问网址

pass null

1 个答案:

答案 0 :(得分:3)

设置Content-Encoding: gzip并未实际更改对象的内容编码。这用于描述您已应用的编码。

设置它而不实际对对象应用gzip压缩会导致错误,例如您遇到的错误。这是浏览器抱怨你"声称" (通过标题)内容实际上是用gzip编码的,实际上它并不是。

同样,在不设置标题的情况下上传gzip压缩对象将导致无法下载,因为接收用户代理(浏览器)无法知道如何解码内容,或者甚至应该尝试。

请注意,当您使用gzip -9 somefile.js在计算机上对文件进行gzip更改时,其名称会更改为将.gz添加到末尾,并将其名称保留为somefile.js.gz。在上传之前删除.gz。它不是必需的,当然你不想改变你的链接。

上面的-9指定gzip应该使用最大压缩,这可能就是你想要的。