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

Creating md5 checksum while copying file in Ruby

我想创建一个 Ruby 程序,以尽可能快的速度将文件从 SD 卡复制到硬盘,同时创建源文件和目标文件的 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