Maison > développement back-end > Golang > Comment télécharger efficacement des fichiers volumineux en Go sans surcharger la mémoire ?

Comment télécharger efficacement des fichiers volumineux en Go sans surcharger la mémoire ?

Linda Hamilton
Libérer: 2024-11-13 12:40:02
original
513 Les gens l'ont consulté

How to Efficiently Download Large Files in Go Without Overloading Memory?

Télécharger efficacement des fichiers volumineux avec Go

Lors du téléchargement de fichiers volumineux, il est essentiel d'éviter de stocker l'intégralité du contenu en mémoire avant de l'écrire sur un fichier. Cette approche peut surcharger la mémoire et entraîner des problèmes de performances. Dans Go, il existe un moyen plus efficace de gérer cette tâche.

Stockage direct de fichiers

Pour télécharger un fichier volumineux dans Go tout en stockant le contenu directement dans un fichier , exploitez la fonction io.Copy. Voici un extrait de code illustrant comment y parvenir :

import (
    "net/http"
    "io"
    "os"
)

func main() {
    out, err := os.Create("output.txt")
    if err != nil {
        // Handle error
    }
    defer out.Close()

    resp, err := http.Get("http://example.com/")
    if err != nil {
        // Handle error
    }
    defer resp.Body.Close()

    n, err := io.Copy(out, resp.Body)
    if err != nil {
        // Handle error
    }

    // Do something with n, e.g. print it
}
Copier après la connexion

Dans cet exemple, http.Response.Body est un lecteur qui peut être utilisé avec des fonctions comme io.Copy. Au lieu de charger l'intégralité du fichier en mémoire, il lit et écrit des morceaux à la fois, maximisant ainsi l'utilisation de la mémoire.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal