Использование 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

Код -https://github.com/mkoniecz/CartoCSSHelper/blob/395deab626209bcdafd675c2d8e08d0e3dd0c7f9/downloader.rb#L126

Ответы на вопрос(0)

Ваш ответ на вопрос