Télécharger efficacement des fichiers volumineux à l'aide de Go
Le stockage de fichiers volumineux en mémoire peut surcharger les ressources d'un ordinateur. Dans Go, comment pouvons-nous télécharger de tels fichiers directement, en évitant cette contrainte de mémoire ?
Réponse :
En supposant que le téléchargement se fasse via HTTP :
import ( "net/http" "io" "os" ) func DownloadFile(url, filepath string) (int64, error) { // Open the destination file out, err := os.Create(filepath) if err != nil { return 0, err } defer out.Close() // Start the HTTP request resp, err := http.Get(url) if err != nil { return 0, err } defer resp.Body.Close() // Stream the response body into the file (avoiding full buffering) n, err := io.Copy(out, resp.Body) if err != nil { return 0, err } return n, nil }
Cette approche utilise le corps de réponse HTTP comme lecteur. Des fonctions comme io.Copy() peuvent fonctionner sur ce lecteur, nous permettant de traiter la réponse par morceaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!