Salva WWW :: :: Mechanize File per fileutils di dischi utilizzando
Domanda
Uso Mechanize con Ruby ottengo un certo file utilizzando agent.get('http://example.com/foo.torrent')
, con fileutils o in altro modo, come faccio a salvare il file sul mio hard disk (per esempio, in una directory da cui lo script è in esecuzione)?
P.S. class => WWW::Mechanize::File
Soluzione
Bene, WWW::Mechanize::File
ha un metodo di istanza save_as
, quindi suppongo qualcosa di simile potrebbe funzionare:
agent.get('http://example.com/foo.torrent').save_as 'a_file_name'
Altri suggerimenti
Si prega di notare che la classe Mechanize::File
non è il più appropriato per file di grandi dimensioni. In questi casi, si dovrebbe utilizzare la classe Mechanize::Download
invece, come si scarica il contenuto in piccoli pezzi su disco. Il file verrà scaricato in cui lo script è in esecuzione (anche se è possibile specificare un percorso diverso pure). È necessario impostare il parser di default prima, crearne uno nuovo o modificare un parser esistente. Poi, salvarlo nel percorso desiderato:
agent.pluggable_parser.default = Mechanize::Download
agent.get( "http://example.com/foo.torrent}").save("path/to/a_file_name")
qui e qui per maggiori dettagli. Inoltre, c'è una domanda simile qui in StackOverflow.