1

我对 Amazon S3 使用 gzip 压缩。我压缩 HTML、JS、CSS 文件并保持图像不变。

我使用s3cmd同步所有内容:

s3cmd sync --cf-invalidate ./deploy s3://n12v.com

不幸的是,这并没有设置Content-Encoding: gzip为所有必要的文件。

我需要找到所有更新的 gzip 文件并Content-Encoding: gzip为每个文件设置。我能想到的最佳解决方案:

  • gzip --test filepath通过在每个文件上运行来查找所有 gzip 压缩文件
  • s3cmd put --add-header='Content-Encoding: gzip' filepath s3://n12v.com/filepath,例如再次上传文件只是为了添加一个标题。

这是非常临时的解决方案,有没有更好的方法呢?

4

1 回答 1

1

我遇到了同样类型的问题,所以我写了s3tup。不幸的是,它没有提供像 s3cmd 的 cf-invalidate 标志这样的东西(还),但是它使得在 rsync 时进行配置变得更加容易。您将编写一个看起来像这样的配置文件。

# config.yml
---
bucket: n12v.com
rsync: ./deploy
key_config:
  - patterns: ['*.html', '*.css', '*.js']
    content_encoding: gzip

然后像这样从命令行进行 rsync 。

$ s3tup config.yml --rsync_only

它仍处于开发初期,但也许您会发现它很有用。

于 2013-09-22T00:12:05.100 回答