這是否會導致Ruby的內存問題。如果文件大小超過10KB,我知道Open-URI寫入TempFile。但是,在寫入TempFile之前,HTTParty會嘗試將整個PDF保存到內存中嗎?HTTParty的內存問題和下載大文件
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
這是否會導致Ruby的內存問題。如果文件大小超過10KB,我知道Open-URI寫入TempFile。但是,在寫入TempFile之前,HTTParty會嘗試將整個PDF保存到內存中嗎?HTTParty的內存問題和下載大文件
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
您可以使用Net :: HTTP。參見the documentation(特別是標題爲「流式響應體」的部分)。
下面是從文檔的例子:
uri = URI('http://example.com/large_file')
Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Get.new uri.request_uri
http.request request do |response|
open 'large_file', 'w' do |io|
response.read_body do |chunk|
io.write chunk
end
end
end
end
HTTParty的目的不是用於下載的PDF文件。它是專爲小型XML或JSON交換而設計的API客戶端。 – 2012-02-16 01:20:45
那麼我應該在這裏做什麼? – maletor 2012-02-16 01:24:31
Open-URI有什麼問題?下面是我使用Net :: HTTP的另一種選擇。 – 2012-02-16 02:04:13