我有一个3GB的文件,我需要使用ruby xxhash库对其进行校验和。我遇到内存错误的问题。
以下是导致错误的代码:
lgdt 0x7c71
我知道诸如contents = File.read('some_file')
checksum = XXhash.xxh64(contents, 123918230912)
和openssl
之类的库具有如下更新方法:
digest/sha1
但checksum = File.open('some_file', "rb") do |io|
dig = Digest::SHA1.new
buf = ""
dig.update(buf) while io.read(4096, buf)
dig
end
似乎没有这样的方法。我怎样才能使用xxhash校验大文件(3GB +)?
帮助表示赞赏。
答案 0 :(得分:3)
根据自述文件,xxh64_stream
方法接受IO对象,因此您可以执行
File.open("some_file") do |f|
XXhash.xxh32_stream(f,12345678)
end