Загрузка Zipfile через CURL в актуальный Zip-файл в вашей файловой структуре - PullRequest
4 голосов
/ 21 марта 2011

Я пытаюсь создать загрузчик файлов с помощью RubyGem Curb. (Посмотрите на Этот вопрос .)

Я пытаюсь загрузить zip-файл, а затем с классом File я пытаюсь фактически создать файл, чтобы я мог дважды щелкнуть по нему в Finder (я на OS X). Как бы я собирался преобразовать это "Curl'ed" тело в zip-файл.

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

Я не получаю никакой ошибки, и я не могу найти файл. Я пробовал абсолютные пути без разницы.

Ответы [ 2 ]

4 голосов
/ 04 октября 2013

Я использую ruby ​​2.0

и мой код:

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

Мне пришлось изменить File.new на File.open, без этого это не сработало.Перемещение curl.perfom в конце действительно помогло мне.

2 голосов
/ 21 марта 2011

Вы добавляете событие on_body после вызова perform, который передает тело. Если вы переместите объявление события до вызова perform, это должно сработать.

...