Сохраните WWW::Mechanize::Файл на диск с помощью FileUtils
Вопрос
Используя Mechanize с Ruby, я получаю определенный файл, используя agent.get('http://example.com/foo.torrent')
, с FileUtils или иным образом, как мне сохранить этот файл на свой жесткий диск (например, в каталог, из которого выполняется скрипт)?
P.S. class => WWW::Mechanize::File
Решение
Что ж, WWW::Mechanize::File
имеет save_as
метод экземпляра, поэтому я полагаю, что что-то подобное могло бы сработать:
agent.get('http://example.com/foo.torrent').save_as 'a_file_name'
Другие советы
Пожалуйста, обратите внимание, что Mechanize::File
класс не самый подходящий для больших файлов.В этих случаях следует использовать Mechanize::Download
вместо этого используйте класс, поскольку он загружает содержимое небольшими порциями на диск.Файл будет загружен туда, где запущен скрипт (хотя вы также можете указать другой путь).Сначала вам нужно установить анализатор по умолчанию, создать новый или модифицировать существующий анализатор.Затем сохраните его по нужному пути:
agent.pluggable_parser.default = Mechanize::Download
agent.get( "http://example.com/foo.torrent}").save("path/to/a_file_name")
Проверить здесь и здесь для получения более подробной информации.Кроме того, есть похожий вопрос здесь в Stackoverflow.