【发布时间】:2016-01-21 14:35:28
【问题描述】:
在 Ruby 中使用 GPGME 加密大文件(大于可用内存)时遇到困难。
#!/usr/bin/ruby
require 'gpgme'
def gpgfile(localfile)
crypto = GPGME::Crypto.new
filebasename = File.basename(localfile)
filecripted = crypto.encrypt File.read(localfile), :recipients => "info@address.com", :always_trust => true
File.open("#{localfile}.gpg", 'w') { |file| file.write(filecripted) }
end
gpgpfile("/home/largefile.data")
在这种情况下,我收到了内存分配错误: “读取:分配内存失败(NoMemoryError)”
有人可以解释我如何逐块读取源文件(例如 100Mb)并通过加密将它们写入?
【问题讨论】:
标签: ruby encryption gpgme