如何使用 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/