Ces dernières années, avec le développement de la technologie du cloud computing, de nombreuses entreprises ont commencé à se tourner vers les services de stockage dans le cloud pour stocker et gérer leurs propres données. Parmi eux, AWS S3 (Amazon Web Services Simple Storage Service) est un choix populaire. En tant que l'un des services principaux d'AWS, S3 fournit des services de stockage haute disponibilité, hautes performances, évolutifs et sécurisés. Dans cet article, nous examinerons en profondeur comment utiliser AWS S3 dans Go.
Avant de commencer à utiliser AWS S3, vous devez installer AWS SDK for Go dans votre projet. Il peut être installé à l'aide des commandes suivantes :
go get -u github.com/aws/aws-sdk-go/aws go get -u github.com/aws/aws-sdk-go/aws/session go get -u github.com/aws/aws-sdk-go/service/s3
Ces commandes téléchargeront les dépendances nécessaires depuis GitHub et les enregistreront dans votre projet.
Avant d'utiliser AWS S3, vous devez configurer les informations d'identification du SDK AWS pour accéder à S3. Vous pouvez créer un utilisateur IAM dans la console AWS et générer des informations d'identification de sécurité (clé d'accès et clé d'accès secrète) pour celui-ci. Ensuite, téléchargez ces informations d'identification sur votre ordinateur (généralement dans un fichier ~/.aws/credentials
).
[default] aws_access_key_id = Access_Key aws_secret_access_key = Secret_Access_Key
Notez que, pour des raisons de sécurité, vous pouvez stocker ces informations d'identification dans vos variables d'environnement ou utiliser d'autres moyens pour gérer ces informations d'identification afin d'éviter qu'elles ne soient divulguées.
Maintenant que nous avons terminé la configuration du SDK AWS et d'AWS S3, commençons à effectuer quelques opérations de base.
(1) Créer une instance S3 :
sess, err := session.NewSession(&aws.Config{ Region: aws.String(region)}, ) s3Svc := s3.New(sess)
(2) Liste du bucket S3 :
result, err := s3Svc.ListBuckets(nil) if err != nil { log.Fatalf("failed to list buckets, %v", err) } for _, bucket := range result.Buckets { fmt.Printf("%s : %s ", aws.StringValue(bucket.Name), bucket.CreationDate) }
(3) Créer un nouveau bucket :
_, err := s3Svc.CreateBucket(&s3.CreateBucketInput{ Bucket: aws.String(bucketName), }) if err != nil { log.Fatalf("failed to create bucket %s, %v", bucketName, err) }
(4) Télécharger le fichier :
file, err := os.Open(filename) if err != nil { log.Fatalf("failed to open file %q, %v", filename, err) } defer func() { if err = file.Close(); err != nil { log.Fatalf("failed to close file %q, %v", filename, err) } }() _, err = s3Svc.PutObject(&s3.PutObjectInput{ Body: file, Bucket: aws.String(bucketName), Key: aws.String(filepath.Base(filename)), }) if err != nil { log.Fatalf("failed to upload file %q to bucket %q, %v", filename, bucketName, err) }
(5) Télécharger le fichier :
file, err := os.Create(filename) if err != nil { log.Fatalf("failed to create file %q, %v", filename, err) } defer func() { if err = file.Close(); err != nil { log.Fatalf("failed to close file %q, %v", filename, err) } }() result, err := s3Svc.GetObject(&s3.GetObjectInput{ Bucket: aws.String(bucketName), Key: aws.String(objectName), }) if err != nil { log.Fatalf("failed to download file %q from bucket %q, %v", objectName, bucketName, err) } if _, err = io.Copy(file, result.Body); err != nil { log.Fatalf("failed to download file %q from bucket %q, %v", objectName, bucketName, err) }
Dans cet article, nous avons vu comment utiliser AWS S3 en langage Go. Que vous stockiez des données dans un environnement cloud AWS ou que vous utilisiez le service S3 dans votre application, il est utile de savoir comment vous connecter à S3 et effectuer des opérations de base. En utilisant les fonctionnalités du kit AWS SDK for Go, vous pouvez facilement utiliser S3 comme stockage principal pour vos applications Go. Vous pouvez désormais commencer à explorer des opérations plus avancées et à gérer vos données avec ce puissant service de stockage !
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!