problemi di memoria con HTTParty e scaricare file di grandi dimensioni
-
25-10-2019 - |
Domanda
È questo che va causare problemi di memoria con Ruby. So Open-URI scrive su un file temporaneo se la dimensione supera 10KB. Ma sarà HTTParty cercare di salvare l'intero PDF in memoria prima che scrive filetemp?
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
Soluzione
È possibile utilizzare Net :: HTTP. Vedere la documentazione (in particolare la sezione intitolata "Streaming Response Bodies").
Ecco l'esempio dalla documentazione:
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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow