Zipfile通过CURL下载到文件结构中的实际Zip文件

时间:2011-03-21 20:19:33

标签: ruby file curl curb

我正在尝试使用RubyGem Curb构建一个文件下载器。 (请查看This Question。)

我正在尝试下载一个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 个答案:

答案 0 :(得分:4)

我正在使用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对我有帮助。

答案 1 :(得分:2)

您在调用转移正文的on_body后添加perform事件。如果您将事件声明移到perform调用之前,这应该可以。