2017-09-07 26 views
0

リンクからファイルをダウンロードするにはどうすればよいですか?表示するにはダウンロードの進捗状況を取得するにはどうすればよいですか?Rubyのダウンロードの進捗状況

私はopen-uriとtyphoeusの宝石を知っています(私は両方を使用しています)。内部ダウンロードを管理しており、ダウンロードの進捗状況を知ることはできません。

私が探しているのは、ダウンロードを一時停止し、パケットが受信されるたびに更新の進捗状況を取得する方法ですが、進める方法がわかりません。

私は他の宝石を使うこともできますか?はいの場合は、どちらが、なぜですか?

答えて

1

あなたは高レベルのAPI(open(uri).readなど)を使用すると、舞台裏でopen-uriのようなライブラリがチャンクされたリクエストとして実行する必要があります。

https://www.ruby-forum.com/topic/170237に基づいてテストされていない例:

u = URI.parse(uri) 
s = "" 
progress = 0 

Net::HTTP.start(u.host, u.port) do |http| 
    http.request_get(u.path) do |response| 
    response.read_body do |chunk| 
     s << chunk 
     progress += chunk.length 
     puts "Downloaded #{progress} so far" 
    end 
    end 
end 
puts "Received:\n#{s}" 
関連する問題