Ruby - XXhash校验和大文件

时间:2015-05-19 20:53:43

标签: ruby

我有一个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 +)?

帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

根据自述文件,xxh64_stream方法接受IO对象,因此您可以执行

File.open("some_file") do |f|
  XXhash.xxh32_stream(f,12345678)
end