Speicherprobleme mit httparty und laden Sie große Dateien herunter
-
25-10-2019 - |
Frage
Wird dies bei Ruby Speicherprobleme verursachen? Ich weiß, dass Open-URI in ein Tempfile schreibt, wenn die Größe über 10 KB beträgt. Aber wird Httparty versuchen, das gesamte PDF in Erinnerung zu retten, bevor es in Tempfile schreibt?
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
Lösung
Sie können net :: http verwenden. Sehen die Dokumentation (insbesondere der Abschnitt mit dem Titel "Streaming -Antwortkörper").
Hier ist das Beispiel aus den Dokumenten:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow