amazon-web-services - 以 S3 网站为源的 CloudFront 不提供压缩文件

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

AWS now supports gzipping files through CloudFront

我遵循了 Serving Compressed Files 中的所有说明,但 gzipping 不起作用。

我有一个 S3 存储桶设置为 CloudFront 用作源的网站。

  • Compress Objects Automatically已启用
  • 我正在提供具有正确内容类型的文件,例如 application/javascripttext/css
  • 文件在 1,000 和 10,000,000 字节之间
  • S3 网站提供带有 Content-Length 的文件据我所知
  • 为确保没有缓存任何内容,我使整个 S3 存储桶无效并将较新版本的文件上传到 S3。
  • 此外,我使用的网络浏览器 Chrome 确实接受 gzipped 文件。

  • 尽管如此,我还是无法让 gzipping 工作。我已经让包括 SSL 在内的其他一切都完美运行,您可以在此处访问该站点:https://formulagrid.com/

    如果您打开 chrome 控制台,您会注意到从 S3 提供的所有文件都没有被 gzip 压缩。唯一的 gzipped 文件(例如 google 字体)是我从其他 CDN 中抓取的文件。

    最佳答案

    我今天遇到了同样的错误,并通过向 S3 存储桶添加 CORS 规则来解决它。此规则可确保将 Content-Length header 发送到 Cloudfront,以便可以对内容进行 gzip:

    S3 > 存储桶 > 权限 > CORS 配置

    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        <CORSRule>
            <AllowedOrigin>*</AllowedOrigin>
            <AllowedMethod>GET</AllowedMethod>
            <MaxAgeSeconds>3000</MaxAgeSeconds>
            <AllowedHeader>Authorization</AllowedHeader>
            <AllowedHeader>Content-Length</AllowedHeader>
        </CORSRule>
    </CORSConfiguration>
    

    归功于罗伯特·埃里森:http://ithoughthecamewithyou.com/post/enable-gzip-compression-for-amazon-s3-hosted-website-in-cloudfront

    据我所知,这似乎是一个未记录的要求。

    关于amazon-web-services - 以 S3 网站为源的 CloudFront 不提供压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590622/

    相关文章:

    ruby - 如何在 Ruby Sinatra 中读取 GZIP 负载

    python - 我想通过(Python)为解压缩(.tar.gz)文件创建一个脚本

    amazon-web-services - 是否可以更改 AWS Cognito 托管 UI?

    reactjs - AWS Amplify 用户 session 不会在 ReactJS 中过期

    amazon-web-services - 用于授予 AWS 组织子账户从 AWS 服务 (cloudFormation) 访问权限的 S3 策略

    deployment - 从 Amazon S3 提供静态文件

    html - 我可以 gzip 压缩我所有的 html 内容(页面)吗?

    mysql - 如何在 AWS DMS 中为源数据库设置时区?

    amazon-web-services - AWS CloudWatch 使用 spring boot 记录和禁用服务器本身的日志

    ruby-on-rails - rails : Add request headers to image_tag