Maison > développement back-end > Golang > Comment diffuser le téléchargement de fichiers sur AWS S3 à l'aide de Go ?

Comment diffuser le téléchargement de fichiers sur AWS S3 à l'aide de Go ?

Susan Sarandon
Libérer: 2024-11-06 12:28:02
original
358 Les gens l'ont consulté

How to Stream File Upload to AWS S3 Using Go?

Télécharger des fichiers en streaming sur AWS S3 à l'aide de Go

Le téléchargement de fichiers volumineux directement sur AWS S3 tout en minimisant la mémoire et l'empreinte disque des fichiers peut être obtenu à l'aide du gestionnaire de téléchargement dans Go. Voici comment :

Utiliser le gestionnaire de téléchargement

  1. Importez les bibliothèques nécessaires :

    import (
        "github.com/aws/aws-sdk-go/aws/credentials"
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/s3/s3manager"
    )
    Copier après la connexion
  2. Créez une configuration AWS :

    awsConfig := &aws.Config{
        Region: aws.String("us-west-2"),
    }
    Copier après la connexion

    Vous pouvez éventuellement fournir votre propre clé d'accès et votre propre clé secrète dans la configuration si nécessaire.

  3. Initialisez une nouvelle session et un téléchargeur :

    sess := session.Must(session.NewSession(awsConfig))
    uploader := s3manager.NewUploader(sess)
    Copier après la connexion
  4. Personnaliser les paramètres du téléchargeur (facultatif) :

    // Set the part size, concurrency, and max upload parts
    uploader := s3manager.NewUploader(sess, func(u *s3manager.Uploader) {
        u.PartSize = 5 * 1024 * 1024 // 5MB is the minimum allowed part size
        u.Concurrency = 2            // Default is 5
    })
    Copier après la connexion
  5. Ouvrez le fichier à télécharger :

    f, err := os.Open(filename)
    if err != nil {
        fmt.Printf("failed to open file %q, %v\n", filename, err)
        return
    }
    Copier après la connexion
  6. Téléchargez le fichier à l'aide du téléchargeur :

    result, err := uploader.Upload(&s3manager.UploadInput{
        Bucket: aws.String(myBucket),
        Key:    aws.String(myKey),
        Body:   f,
    })
    Copier après la connexion
  7. Gérez les erreurs potentielles :

    if err != nil {
        fmt.Printf("failed to upload file, %v\n", err)
        return
    }
    Copier après la connexion
  8. Imprimez le téléchargement emplacement :

    fmt.Printf("file uploaded to, %s\n", result.Location)
    Copier après la connexion

En utilisant le gestionnaire de téléchargement de cette manière, vous pouvez diffuser et télécharger des fichiers volumineux directement sur AWS S3 avec une consommation de ressources minimale.

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