この記事の説明にあるように、https://medium.com/@mpreziuso/is-gzip-deterministic-26c81bfd0a49は、全く同じファイルセットの圧縮である2つの.tar.gzファイルのmd5が異なる場合があります。これは、たとえば、圧縮ファイルのヘッダーにタイムスタンプが含まれているためです。pythonで同じ内容の同じmd5ハッシュを保持するアーカイブを作成する方法は?
記事では3つのソリューションが提案されている、と私はidealy最初の1ウィッヒを使用したいです:
私たちは、gzipのタイムスタンプとファイルを省略するようになりますgzip形式で-nフラグを使用することができますファイルヘッダからの名前。
そして、このソリューションがうまく機能:
tar -c ./bin |gzip -n >one.tar.gz
tar -c ./bin |gzip -n >two.tar.gz
md5sum one.tgz two.tgz
それでも私はPythonでそれを行うには良い方法がどうなるかの見当がつかない。 tarfile(https://docs.python.org/2/library/tarfile.html)でそれを行う方法はありますか?
あなたはあなただけの外部プロセスとして書いたコマンドを起動できない理由をいくつかの理由がありますか? 'os.system(" tar -c ./bin | gzip -n> one.tar.gz ")' –
'gzip.GzipFile()'に明示的な 'mtime'引数を使用すると何が問題になりますか? –