ruby – 如何通过HTTP下载二进制文件?

如何使用Ruby通过HTTP下载和保存二进制文件?

网址为http://somedomain.net/flv/sample/sample.flv。

我在Windows平台上,我不喜欢运行任何外部程序。

最佳答案
最简单的方法是平台特定的解决方案:

 #!/usr/bin/env ruby
`wget http://somedomain.net/flv/sample/sample.flv`

您可能正在搜索:

require 'net/http'
# Must be somedomain.net instead of somedomain.net/, otherwise, it will throw exception.
Net::HTTP.start("somedomain.net") do |http|
    resp = http.get("/flv/sample/sample.flv")
    open("sample.flv", "wb") do |file|
        file.write(resp.body)
    end
end
puts "Done."

编辑:已更改。谢谢。

Edit2:下载时保存文件的一部分的解决方案:

# instead of http.get
f = open('sample.flv')
begin
    http.request_get('/sample.flv') do |resp|
        resp.read_body do |segment|
            f.write(segment)
        end
    end
ensure
    f.close()
end

转载注明原文:ruby – 如何通过HTTP下载二进制文件? - 代码日志