我想创建一个Ruby程序,尽可能快地将文件从SD卡复制到硬盘,但也要创建源文件和目标文件的md5校验和,以确保数据完整性。
我相信分块读取文件并创建校验和会比更快
- 创建源的校验和
- 复制文件
-
创建目标的校验和
$md5=摘要::md5.file("文件名"(.hexxdestist创建校验和,但我不知道如何使md5创建和文件复制同时发生?
您可以在流式传输文件时计算摘要,以避免重新读取文件。
def copy_md5(source, target)
chunk_size=1024
md5 = Digest::MD5.new
open(target,'w') do |t|
open(source) do |s|
while chunk=s.read(chunk_size)
md5.update chunk
t.write chunk
end
end
end
md5
end