首页 > 解决方案 > 如何为 Web 和 Amazon CloudFront 手动 gzip 文件

问题描述

我有一个 3MB 的 .wasm 文件,我正在尝试使用 gzip 对其进行压缩并在 Amazon CloudFront 上使用。目前 CloudFront 不支持自动压缩 .wasm 文件类型。

我使用过gzip filename.wasm,但从 CloudFront 获取时输出的结果在我的代码中不起作用。我在其他地方读到该文件缺少一些文件头。

所以我的问题是,如何手动压缩 .wasm 文件以在 Web 上使用并从 CloudFront 获取?

谢谢!

标签: webgzipamazon-cloudfront

解决方案


您可以使用 gzip 压缩文件,然后使用 将其上传到 s3 --content-type application/wasm --content-encoding gzip,不带.gz后缀。当此文件随后通过云端提供时,它将被 gzip 压缩并由浏览器读取。

这是一个使用 brotli 的示例:

WASM_FILE=$(ls dist/ | grep '.wasm$');
brotli-cli dist/*.wasm
BROTLI_FILE=$(ls dist/ | grep wasm.br);
mv dist/$BROTLI_FILE dist/$WASM_FILE

aws s3 cp dist/*.wasm s3://$S3_BUCKET/ \
  --content-encoding br \
  --content-type application/wasm

推荐阅读