我正在用python编写一个脚本,用于将静态站点部署到aws(s3、cloudfront、route53)。因为我不想在每次部署时都上传每个文件,所以我通过比较它们的 md5 散列和它们的电子标签(s3 设置为对象的 md5 散列)来检查哪些文件被修改。这适用于所有文件,除了我的构建脚本在上传之前 gzip 压缩的文件。查看文件内部,gzip 似乎并不是真正的纯函数;每次运行 gzip 时,输出文件都会有非常细微的差异,即使源文件没有更改。
我的问题是:在给定完全相同的输入的情况下,有什么方法可以让 gzip 可靠且可重复地输出完全相同的文件?还是我最好检查文件是否已压缩,解压缩并计算 md5 哈希/手动设置电子标签值?