"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment télécharger des fichiers sur AWS Ssando Golang

Comment télécharger des fichiers sur AWS Ssando Golang

Publié le 2024-11-08
Parcourir:847

Como Realizar Upload de Arquivos no AWS Ssando Golang

le téléchargement de fichiers vers S3 via Golang est l'une des opérations les plus courantes lorsqu'il s'agit de gérer des fichiers sur AWS. Cette fonctionnalité permet aux développeurs de télécharger des documents, des images, des vidéos et d'autres types de fichiers sur le stockage cloud de manière sécurisée et évolutive. Dans cet article, nous explorerons comment effectuer cette intégration à l'aide du langage Go et de l'API AWS S3. Ensuite, vous comprendrez les principales étapes pour configurer votre environnement et réussir le téléchargement.

Préparation de l'environnement de développement

Avant de commencer à télécharger des fichiers, vous devez configurer votre environnement de développement. Assurez-vous d'avoir :

  1. Un compte AWS valide.
  2. Les informations d'identification d'accès (clé d'accès et clé secrète) pour votre compte AWS.
  3. Go SDK installé.
  4. Le package officiel AWS SDK for Go.

Pour installer le kit AWS SDK for Go, exécutez simplement la commande suivante :

go get -u github.com/aws/aws-sdk-go/aws

Maintenant que le SDK est installé, vous êtes prêt à commencer à écrire le code d'intégration AWS S3.

Découvrez comment cycler la vie de S3 à l'aide de Lambdas pour automatiser ce travail : https://devopsmind.com.br/aws-pt-br/automacao-aws-s3-lifecycle-lambda/

Téléchargement vers S3

Configuration du client AWS S3

La première étape du téléchargement consiste à configurer le client AWS S3. Ce client vous permet d'interagir avec le service AWS et de gérer vos buckets et objets. Le code suivant montre comment configurer le client à l'aide de vos informations d'identification :

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
)

func createS3Client() *s3.S3 {
    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("us-west-2"),
    }))
    return s3.New(sess)
}

Dans ce code, nous créons une session AWS et configurons le client S3. N'oubliez pas de remplacer la région par l'emplacement où votre compartiment S3 est configuré.

Création de la fonction de téléchargement

Après avoir configuré le client AWS S3, nous créerons la fonction responsable du téléchargement des fichiers. Cette fonction lira le fichier depuis le système local et l'enverra à S3, dans un bucket spécifique :

import (
    "fmt"
    "os"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
)

func uploadFileToS3(bucketName, filePath, key string) error {
    file, err := os.Open(filePath)
    if err != nil {
        return err
    }
    defer file.Close()

    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("us-west-2"),
    }))

    uploader := s3.New(sess)
    _, err = uploader.PutObject(&s3.PutObjectInput{
        Bucket: aws.String(bucketName),
        Key:    aws.String(key),
        Body:   file,
    })

    if err != nil {
        return fmt.Errorf("falha no upload para o S3: %v", err)
    }
    fmt.Println("Upload realizado com sucesso!")
    return nil
}

Ici, la fonction uploadFileToS3 reçoit trois paramètres : le nom du bucket, le chemin du fichier local et la clé (nom) que le fichier aura dans S3. La fonction ouvre le fichier et l'envoie au compartiment à l'aide de la fonction AWS S3 SDK for Go PutObject.

Gérer les autorisations

Lorsque vous travaillez avec des téléchargements vers AWS S3, il est important de vous assurer que vos autorisations sont correctement configurées. AWS utilise le système de politique IAM (Identity and Access Management) pour gérer les autorisations d'accès à ses ressources. Assurez-vous que l'utilisateur ou le rôle IAM utilisé dans le code dispose des autorisations suffisantes pour effectuer des opérations de téléchargement vers S3. Pour plus de détails sur les autorisations IAM, consultez la documentation officielle d'AWS.

Exemples d'utilisation pratiques

Envoi d'images vers un compartiment S3

Supposons que vous souhaitiez créer un service permettant aux utilisateurs de télécharger des images et de les stocker dans un compartiment S3. Le code ressemblerait à ce qui suit :

func main() {
    err := uploadFileToS3("meu-bucket", "caminho/para/imagem.png", "imagem.png")
    if err != nil {
        fmt.Println("Erro ao fazer upload:", err)
        return
    }
    fmt.Println("Upload concluído com sucesso!")
}

Dans cet exemple, l'image imagem.png sera téléchargée dans le bucket my-bucket. Le chemin d'accès au fichier et son nom sur S3 sont définis par les paramètres de la fonction uploadFileToS3.

Conclusion

Le téléchargement de fichiers sur AWS S3 avec Golang est une tâche simple lorsque vous utilisez les outils appropriés. Avec le kit AWS SDK for Go, vous pouvez facilement intégrer votre application au service S3, fournissant ainsi une solution de stockage de fichiers robuste et évolutive. Maintenant que vous avez appris les bases, vous pouvez étendre votre implémentation pour inclure d'autres fonctionnalités, telles que le téléchargement de fichiers, la liste des objets dans le compartiment, etc. Continuez à explorer d'autres possibilités d'intégration avec AWS à l'aide de Golang et consultez plus de contenu sur Golang et AWS S3.


Déclaration de sortie Cet article est reproduit sur : https://dev.to/fernandomullerjr/como-realizar-upload-de-arquivos-no-aws-s3-usando-golang-1gec?1 En cas de violation, veuillez contacter study_golang@163 .com pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3