Frage Einfachste Möglichkeit, eine Datei herunterzuladen?


Ich kann etwas wie unten tun, was mir eine Antwortklasse gibt, aber ich bin mir nicht sicher, wie ich den io.reader in eine Datei schreiben soll. Was ist der direkteste Weg?

http.Get("https://www.domain.com/some.jpg")

5
2018-06-25 18:50


Ursprung


Antworten:


Wenn die Datei klein genug ist, ist die einfachste Lösung zu verwenden ioutil.WriteFile kombiniert mit ioutil.ReadAll  :

resp, err := http.Get("your url")
bytes, err := ioutil.ReadAll(resp.Body)
err = ioutil.WriteFile(filename, bytes, 0666)

Wenn Ihre Datei nicht so klein ist, vermeiden Sie besser das Erstellen und Ausfüllen der Datei bytes Array. Dann solltest du verwenden io.Copy die einfach die Bytes vom Reader zum Writer kopiert:

resp, err := http.Get("your url")
f, err := os.Create(filename)
defer f.Close()
_, err := io.Copy(f, resp.Body)

Sie müssen die entsprechende Fehlerbehandlung in beiden Fällen hinzufügen.


8
2018-06-25 18:56