在 Ruby 中复制文件时创建 md5 校验和
Creating md5 checksum while copying file in Ruby
我想创建一个 Ruby 程序,以尽可能快的速度将文件从 SD 卡复制到硬盘,同时创建源文件和目标文件的 md5 校验和以确保数据完整性。
我相信分块读取文件并创建校验和会比
更快
- 创建源校验和
- 复制文件
创建目标校验和
$md5 = Digest::MD5.file('filename').hexdigest
创建校验和,但我不知道如何同时进行 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
我想创建一个 Ruby 程序,以尽可能快的速度将文件从 SD 卡复制到硬盘,同时创建源文件和目标文件的 md5 校验和以确保数据完整性。
我相信分块读取文件并创建校验和会比
更快- 创建源校验和
- 复制文件
创建目标校验和
$md5 = Digest::MD5.file('filename').hexdigest 创建校验和,但我不知道如何同时进行 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