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

标签 ruby download

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

URL 是 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 下载二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263540/

相关文章:

forms - Wicket 表单触发下载

从 URL 下载 Windows 批处理文件文件

ruby - 将 Ruby 字符串范围转换为 Range 对象的最佳方法是什么

PHP文件下载问题

java - 从远程文件读取字符串 - Java

MySQL 查询检查是否没有返回任何内容

browser - 默认情况下下载 mp3 而不是在浏览器中播放?

ruby-on-rails - 有条件地向元素添加多个类

ruby-on-rails - 如何使用 flash[] 存储电子邮件

ruby-on-rails - 使用 whenever gem 安排顺序任务