HTTPARTY的内存问题并下载大文件
-
25-10-2019 - |
题
这会引起Ruby的记忆问题。我知道,如果大小超过10kb,则开放式URI会将其写入temfile。但是,HTTPARTY会在将整个PDF保存到记忆之前,然后再将其写入tempfile?
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
解决方案
您可以使用net :: http。看 文档 (特别是标题为“流响应机构”的部分)。
这是文档的示例:
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
不隶属于 StackOverflow