我使用php创建了数百个文件夹和文本文件,然后将它们添加到zip存档中。
这一切都运行正常但如果我使用相同的文件夹和文件创建另一个zip存档,则新存档将与第一个存档具有不同的哈希。如果我使用winrar而不是php来创建存档,这是一样的。
当我压缩我通过php创建的文件时,它似乎只显示不同的哈希值,但它们打开正常。
很奇怪有人对此有所了解吗?
由于
答案 0 :(得分:6)
文件肯定存在一些差异。如果长度不完全相同,则散列将不同。您可以使用比较十六进制编辑器(例如Hex Workshop)来查看差异究竟是什么。
我想到的可能性:
答案 1 :(得分:4)
邮编不是确定性的。为了解决这个zip问题(例如,当您拥有CI并需要更新AWS lambda时,这确实是个问题,并且不想每次都进行更新,而仅是在某些真正更改时才要进行更新),我使用了本文:{{3} }
像这样:
find . -exec touch -t "$(git ls-files -z . | \
xargs -0 -n1 -I{} -- git log -1 --date=format:"%Y%m%d%H%M" --format="%ad" '{}' | \
sort -r | head -n 1)" '{}' +
zip -rq -D -X -9 -A --compression-method deflate dest.zip sources...