1

Amazon S3 には gzip 圧縮を使用しています。HTML、JS、CSS ファイルを gzip し、画像を変更しません。

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 に答える