Problèmes de mémoire avec HTTParty et télécharger des fichiers volumineux
-
25-10-2019 - |
Question
Est-ce que cela va causer des problèmes de mémoire avec Ruby. Je sais Ouvrir URI écrit dans un fichier temporaire si la taille dépasse 10 Ko. Mais va HTTParty essayer de sauver tout le PDF en mémoire avant de les écrire dans le fichier temporaire?
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
La solution
Vous pouvez utiliser Net :: HTTP. Voir la documentation (en notamment la section intitulée "Bodies Réponse en streaming").
Voici l'exemple de la 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow