【问题标题】:AWS S3 Returns 200ok parser fails if ContentEncoding: 'gzip'如果 ContentEncoding:'gzip',AWS S3 返回 200ok 解析器失败
【发布时间】:2013-08-29 16:12:16
【问题描述】:

我第一次部署到 AWS。 这些文件都已就位,并且加载了 index.html。 子目录中有两个文件,一个是 .js,一个是 .css。 他们都返回 200 但无法加载。 Chrome 说它是“解析器”。

在尝试了几件事后,我注意到这个属性导致了它:ContentEncoding: "gzip"

如果我删除此属性,则可以正确找到文件。

我是否错误地使用了这个属性?

我正在通过这个伟大的项目使用 Node AWS SDK:https://github.com/MathieuLoutre/grunt-aws-s3

您可以在http://tidepool.co.s3-website-us-west-1.amazonaws.com/亲眼目睹这种行为

【问题讨论】:

    标签: node.js deployment amazon-web-services amazon-s3


    【解决方案1】:

    如果您指定Content-Encoding: gzip,那么您需要确保内容实际上是在 S3 上压缩的。

    根据我在这个 CSS 文件中看到的内容:

    http://tidepool.co.s3-website-us-west-1.amazonaws.com/08-26_6483218-dirty/all-min.css

    实际内容没有经过 gzip 压缩,但存在 Content-Encoding: gzip 标头。

    另外请记住,S3 无法根据请求中的 Accept-Encoding 标头即时压缩您的内容。您可以将其未压缩存储,它适用于所有浏览器/客户端,或者以压缩格式(gzip/deflate)存储,它仅适用于一些可以处理压缩内容的客户端。

    【讨论】:

    • 哦。哇。我不知道我必须手动执行此操作。我认为所有 Web 服务器都会自动执行此操作(mod_deflate)。也感谢您对接受编码的提醒!
    【解决方案2】:

    你也可以看看官方AWS SDK for Node.js

    【讨论】:

    • 我可以,但是 grunt 工具链作为一个包真的很好。呆在一个框架中会有一些效率,你不觉得吗?或者您认为将 s3 上传编写为构建链触发的自定义脚本是否值得?
    猜你喜欢
    • 2016-02-08
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多