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
Était-ce utile?

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
scroll top