2017-09-07 4 views
0

링크에서 파일을 다운로드하는 방법은 무엇이며 다운로드 진행률을 표시하려면 어떻게합니까?Ruby 다운로드 진행 진행

오픈 - uri와 타이포 우스 젬 (둘 다 사용함)은 내부 다운로드를 관리하며 다운로드 진행 방법을 모릅니다.

내가 찾고있는 것은 다운로드를 일시 중지하고 패킷이 수신 될 때마다 값의 진행 상황을 얻는 방법이지만 계속 진행할 방법을 모르겠다 고 가정합니다.

다른 보석을 사용할 수도 있습니까? 그렇다면 어떤 이유와 이유가 있습니까?

답변

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}"