Descargar ZipFile a través de Curl a un archivo zip real en la estructura de su archivo
Pregunta
Estoy tratando de construir un descargador de archivos con el bordillo Rubygem. (Mirar Esta pregunta.)
Estoy tratando de descargar un archivo zip y luego con el archivo de clase, estoy tratando de hacer el archivo para poder hacerle doble clic en Finder (estoy en OS X). ¿Cómo iría a convertir este cuerpo "curl'ed" en una tirolesa?
require 'rubygems'
require 'curb'
class Download
def start
curl = Curl::Easy.new('http://wordpress.org/latest.zip')
curl.perform
curl.on_body {
|d| f = File.new('test.zip', 'w') {|f| f.write d}
}
end
end
dl = Download.new
dl.start
No recibo ningún error, tampoco puedo encontrar ningún archivo. He probado caminos absolutos sin diferencia.
Solución
Estás agregando el on_body
evento después de llamar perform
, que transfiere el cuerpo. Si mueve la declaración del evento a antes del perform
Llame, esto debería funcionar.
Otros consejos
Estoy usando Ruby 2.0
Y mi código es:
curl = Curl::Easy.new('http://somepage.cz/index.html')
curl.on_body do |d|
f = File.open('output_file.html', 'w') {|f| f.write(d)}
end
curl.perform
Tuve que cambiar File.new
a File.open
Sin esto no funcionó. Moviente curl.perfom
Al final me ayudó.