Использование rest-client для загрузки файла на диск без предварительной загрузки всего в память
Я использую rest-client для загрузки большой страницы (размером около 1,5 ГБ). Полученное значение сохраняется в памяти, а не сохраняется в файле. В результате моя программа падает сfailed to allocate memory (NoMemoryError)
.
Но не обязательно хранить эти данные в памяти, они могут быть даже сохранены непосредственно на диск.
Я обнаружил, что «Вы можете: (...) вручную обрабатывать ответ (например, работать с ним как с потоком, а не считывать его все в память). См. Документацию RestClient :: Request для получения дополнительной информации». наhttps://github.com/rest-client/rest-client К сожалению после прочтенияhttp://www.rubydoc.info/gems/rest-client/1.7.3/RestClient/Request Я понятия не имею, как это может быть достигнуто.
Я также знаю, что я могу использовать другую библиотеку (Использование WWW: Механизация для загрузки файла на диск без предварительной загрузки всего в память) но моя программа уже использует rest-client.
Упрощенный код:
data = RestClient::Request.execute(:method => :get, :url => url, :timeout => 3600)
file = File.new(filename, 'w')
file.write data
file.close