1

静的サイトを aws (s3、cloudfront、route53) にデプロイするためのスクリプトを Python で作成しています。デプロイごとにすべてのファイルをアップロードしたくないので、md5 ハッシュと e-tag (s3 がオブジェクトの md5 ハッシュに設定する) を比較して、どのファイルが変更されたかを確認します。これは、ビルド スクリプトがアップロード前に gzip するファイルを除くすべてのファイルでうまく機能します。ファイルの中を見ると、gzip は純粋な関数ではないようです。ソースファイルが変更されていなくても、gzip が実行されるたびに出力ファイルにわずかな違いがあります。

私の質問はこれです: gzip を取得して、まったく同じ入力が与えられたときに、まったく同じファイルを確実かつ繰り返し出力する方法はありますか? または、ファイルが gzip されているかどうかを確認し、解凍して md5 ハッシュを計算するか、代わりに e-tag 値を手動で設定する方がよいでしょうか?

4

2 に答える 2

-1

あなたが正しく理解したように、gzipは安定していません:

[root@dev1 ~]# touch a b
[root@dev1 ~]# gzip a
[root@dev1 ~]# gzip b
[root@dev1 ~]# md5sum a.gz b.gz
8674e28eab49306b519ec7cd30128a5c  a.gz
4974585cf2e85113f1464dc9ea45c793  b.gz
于 2012-12-22T11:20:20.520 に答える