У меня возникают трудности с шифрованием больших файлов (больше, чем доступная память) с помощью GPGME в Ruby.
#!/usr/bin/ruby
require 'gpgme'
def gpgfile(localfile)
crypto = GPGME::Crypto.new
filebasename = File.basename(localfile)
filecripted = crypto.encrypt File.read(localfile), :recipients => "[email protected]", :always_trust => true
File.open("#{localfile}.gpg", 'w') { |file| file.write(filecripted) }
end
gpgpfile("/home/largefile.data")
В этом случае я получил ошибку выделения памяти: "прочитано: не удалось выделить память (NoMemoryError)"
Кто-нибудь может объяснить мне, как читать исходный файл по частям (например, по 100 Мб) и записывать их, минуя шифрование?