【问题标题】:gzip not working for aws s3 assetsgzip 不适用于 aws s3 资产
【发布时间】:2016-08-11 13:48:36
【问题描述】:

我已将 javascript 文件上传到 aws s3 存储桶,对于 gzip 压缩,我设置了以下元数据。我也将文件设为公开。

Content-Encoding: 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

【问题讨论】:

  • 您可能会因为aws的服务器问题而面临问题,我也面临aws的问题。
  • 在上传之前你真的用gzip压缩过文件吗?
  • @Michael,不。上传前我没有压缩,我需要这样做吗?

标签: javascript amazon-s3 gzip


【解决方案1】:

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

在没有对对象实际应用 gzip 压缩的情况下设置它会导致类似您遇到的错误。这是浏览器抱怨您“声称”(通过标题)内容实际上是使用 gzip 编码的,而实际上并非如此。

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

请注意,当您在计算机上使用gzip -9 somefile.js 压缩文件时,其名称会更改为在末尾添加.gz,而其名称仍为somefile.js.gz。在上传之前删除.gz。它不是必需的,当然您也不想更改链接。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2015-02-27
    • 2022-12-17
    • 1970-01-01
    相关资源
    最近更新 更多