在Ruby中复制文件时创建md5校验和

时间:2015-07-06 23:53:07

标签: ruby performance file copy md5

我想创建一个Ruby程序,尽可能快地将文件从SD卡复制到硬盘,但也会创建源和目标文件的md5校验和,以确保数据的完整性。

我相信以块的形式读取文件并创建校验和将比

更快
  • 创建源的校验和
  • 复制文件
  • 创建目标

    的校验和

    $ md5 = Digest :: MD5.file('filename')。hexdigest 创建校验和,但我不知道如何同时进行md5创建和文件复制?

1 个答案:

答案 0 :(得分:1)

您可以在流式传输文件时计算摘要,以避免重新读取文件。

from collections import defaultdict
d = defaultdict(lambda : 0) # initial value 0
for i in list_of_tuples:
    d[i[:2]] += i[2]