Wenn ich einen Code wie das folgende Beispiel habe, der ein Bild von einem Link abruft und es dann auf dem Datenträger speichert, was ist der beste Weg, um die Bilddaten weiterzugeben?Was ist ein effizienter Weg, um einen Antworttext (response.Body) in Go zu übergeben?
Ich dachte über die Verwendung von ioutil.ReadAll(res.Body)
, um es in []byte
zu konvertieren, aber die Übergabe scheint teuer, obwohl ich nicht aus der Dokumentation sagen kann, ob es eine Scheibe oder ein Array zurückgibt. Ich versuchte auch, einen Zeiger auf res.Body
, einen *io.ReadCloser
Art zurückzubringen, aber ich konnte nicht herausfinden, wie man die .Close()
Methode auf der verwiesenen Schnittstelle richtig nennt.
Ich verstehe, dass das Verschieben des Sicherungscodes in die FetchImage
Funktion wahrscheinlich der einfachste Weg wäre, dies zu lösen, aber ich möchte diese Teile, wenn möglich, getrennt haben.
Außerdem bin ich sehr neu zu gehen, also wenn es etwas in diesem Code, der schlecht aussieht, bitte lass es mich wissen.
Danke für die Antwort. Ist es nicht ein wenig überflüssig, denn dann müssten Sie einen neuen Reader erstellen, der an io.Copy übergeben wird, wenn res.Body diese Schnittstelle bereits erfüllt? – Wilfred
Call Write direkt anstelle von io.Copy: 'file.Write (Daten)' –