1
0
Fork 0
mirror of https://github.com/jnunemaker/httparty synced 2023-03-27 23:23:07 -04:00
httparty/examples/stream_download.rb

26 lines
755 B
Ruby

dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
require File.join(dir, 'httparty')
require 'pp'
# download file linux-4.6.4.tar.xz without using the memory
response = nil
filename = "linux-4.6.4.tar.xz"
url = "https://cdn.kernel.org/pub/linux/kernel/v4.x/#{filename}"
File.open(filename, "w") do |file|
response = HTTParty.get(url, stream_body: true) do |fragment|
if [301, 302].include?(fragment.code)
print "skip writing for redirect"
elsif fragment.code == 200
print "."
file.write(fragment)
else
raise StandardError, "Non-success status code while streaming #{fragment.code}"
end
end
end
puts
pp "Success: #{response.success?}"
pp File.stat(filename).inspect
File.unlink(filename)