Ruby Net::HTTP で進捗表示しつつダウンロードのメモ - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech

screenshot

require 'net/http' require 'uri' Net::HTTP.version_1_2 uri = URI("http://example.com/bigfile") dest = "/tmp/foo" Net::HTTP.start(uri.host, uri.port) {|http| req = Net::HTTP::Get.new(uri.request_uri) #req.basic_auth 'tsun', 'dere' http.request(req) do |response| size = response["Content-Length"].to_f File.open(dest, "wb") do |file| response.read_body do |data| file.write data puts file.tell / size end end end }

http://subtech.g.hatena.ne.jp/cho45/20081120/1227178806

File.tell / Content-Length
そんなイテレータがあったのかー,知らなかった

http://b.hatena.ne.jp/entry/http://subtech.g.hatena.ne.jp/cho45/20081120/1227178806