Verwenden Sie rest-client, um eine Datei auf die Festplatte herunterzuladen, ohne sie zuerst im Speicher zu speichern.
Ich verwende den Rest-Client zum Herunterladen einer großen Seite (ca. 1,5 GB groß). Der abgerufene Wert wird im Speicher gespeichert und nicht in einer Datei gespeichert. Als Ergebnis stürzt mein Programm mit @ failed to allocate memory (NoMemoryError)
.
Aber es ist nicht notwendig, diese Daten im Speicher zu behalten, sie können sogar direkt auf der Festplatte gespeichert werden.
I found "Sie können: (...) die Antwort manuell verarbeiten (z. B. als Stream verarbeiten, anstatt alles in den Speicher zu lesen). Weitere Informationen finden Sie in der Dokumentation zu RestClient :: Request." aufhttps: //github.com/rest-client/rest-clien Leider nach dem lesenhttp: //www.rubydoc.info/gems/rest-client/1.7.3/RestClient/Reques Ich habe keine Ahnung, wie es erreicht werden kann.
Ich bin mir auch bewusst, dass ich möglicherweise eine andere Bibliothek benutze Verwenden von WWW: Mechanisieren Sie das Herunterladen einer Datei auf die Festplatte, ohne zuvor alle Dateien in den Speicher zu laden.) aber mein Programm benutzt bereits den Rest-Client.
Vereinfachter Code:
data = RestClient::Request.execute(:method => :get, :url => url, :timeout => 3600)
file = File.new(filename, 'w')
file.write data
file.close