l'éditeur php Youzi vous donnera une brève introduction au sujet du téléchargement GCS pour le chunking dans Go SDK. GCS (Google Cloud Storage) est un service de stockage d'objets fourni par Google Cloud Platform, qui peut être utilisé pour stocker et accéder à de grandes quantités de données non structurées. Lorsque vous utilisez GCS pour télécharger des fichiers, si le fichier est volumineux, vous pouvez utiliser la méthode de téléchargement fragmenté, ce qui peut améliorer la vitesse et la stabilité du téléchargement. Go SDK fournit les interfaces et méthodes correspondantes pour implémenter facilement la fonction de téléchargement en plusieurs parties. De cette manière, les développeurs peuvent gérer les opérations de téléchargement de fichiers volumineux avec plus de flexibilité.
J'essaie d'utiliser gcs Writer pour télécharger des fichiers volumineux :
bucketHandle := m.Client.Bucket(bucket) objectHandle := bucketHandle.Object(path) writer := objectHandle.NewWriter(context.Background())
Puis pour la taille n
的块,我调用 writer.write(mybuffer)
. Je vois des exceptions de mémoire insuffisante sur le cluster et je me demande s'il s'agit simplement de mettre en mémoire tampon l'intégralité du fichier. Quelle est la sémantique de cette opération et ai-je mal compris quelque chose ?
Oui, les données sont transmises à GCS après chaque appel d'écriture dans le code. La méthode Write renvoie le nombre d'octets écrits, les erreurs rencontrées et le nombre d'octets réellement écrits sur la connexion sous-jacente. Les données sont vidées vers GCS après l'écriture de chaque bloc, donc la quantité de mémoire consommée par le client doit être limitée à la taille du tampon. Dans votre cas, si vous divisez les données d'entrée en 5 Mo, la taille du tampon est de 5 Mo. morceaux et utilisez Write in a loop.
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!