Maison >développement back-end >Golang >Comment implémenter le stockage cloud pour les applications Web à l'aide de Golang
Le stockage cloud fait partie intégrante des applications Web modernes. Il nous permet de stocker et d'accéder facilement à de grandes quantités de données sans nous soucier des pannes matérielles ou des problèmes de capacité de stockage. Dans cet article, nous explorerons comment implémenter le stockage cloud pour les applications Web à l'aide de Golang, notamment en utilisant Amazon S3 et MinIO.
Amazon S3 est un service cloud Amazon qui prend en charge le stockage d'objets. Il s'agit d'un modèle de stockage dans lequel les données sont stockées sous la forme d'un objet unique et accessibles avec un identifiant unique. Amazon S3 est évolutif, fiable et sécurisé, et peut gérer la plupart des besoins de stockage associés aux applications Web.
AWS SDK for Go est une interface en langage Go permettant de travailler avec Amazon Web Services. Pour utiliser le stockage Amazon S3, vous devez installer le kit AWS SDK for Go sur votre ordinateur, voici comment procéder :
go get -u github.com/aws/aws-sdk-go
Avant d'utiliser le stockage Amazon S3, vous devez créer un compartiment. Vous pouvez créer un compartiment via la console Amazon S3, le kit AWS SDK for Go ou via l'interface de ligne de commande (CLI) AWS. Dans cet exemple, nous utiliserons le kit AWS SDK for Go pour créer un bucket :
s3Client := s3.New(session.New(), &aws.Config{ Region:aws.String(region), }) s3Client.CreateBucket(&s3.CreateBucketInput{ Bucket:aws.String(bucketName), })
La variable region
stocke la région AWS de votre bucket, et la variable bucketName
indique que vous souhaitez créer Le nom du bucket. region
存储您的存储桶的AWS区域,变量bucketName
表示您要创建的存储桶的名称。
现在我们已经创建了存储桶,可以使用AWS SDK for Go将文件上传到存储桶中:
file, err := os.Open("example.txt") if err != nil { panic(err) } defer file.Close() s3Client.PutObject(&s3.PutObjectInput{ Bucket:aws.String(bucketName), Key:aws.String("example.txt"), Body:file, })
在此例中,文件“example.txt”将从本地计算机上传到Amazon S3存储桶。函数PutObject
用于将对象上传到存储桶,对应的参数中Bucket
指定了要上传到的存储桶的名称,Key
是Bucket中保存的对象名称,Body
是要上传的文件。
您可以通过AWS SDK for Go下载存储桶中的文件:
file, err := os.Create("example.txt") if err != nil { panic(err) } defer file.Close() s3Client.GetObject(&s3.GetObjectInput{ Bucket:aws.String(bucketName), Key:aws.String("example.txt"), }).WriteTo(file)
在此例中,将文件“example.txt”从存储桶中下载到本地计算机。函数GetObject
用于获取存储在Bucket中的对象,对应的参数中Bucket
指定了要获取的存储桶的名称,Key
是Bucket中保存的对象名称,最终将内容写入到本地文件中。
MinIO是一个开源对象存储服务,支持Amazon S3 API。它是一个可扩展、高性能和分布式的云存储服务,适用于将大型数据集用于机器学习、分析和备份。
与Amazon S3存储一样,要使用MinIO存储,您需要在计算机上安装MinIO SDK for Go:
go get -u github.com/minio/minio-go/v7
在使用MinIO之前,您需要连接到MinIO服务器:
minioClient, err := minio.New("play.min.io", "ACCESS_KEY", "SECRET_KEY", true) if err != nil { panic(err) }
这里的ACCESS_KEY
和SECRET_KEY
err = minioClient.MakeBucket(context.Background(), "my-bucket", minio.MakeBucketOptions{}) if err != nil { panic(err) }Dans cet exemple, le fichier "example.txt" sera être téléchargé depuis la machine locale vers le compartiment Amazon S3. La fonction
PutObject
est utilisée pour télécharger des objets dans un bucket. Le paramètre correspondant Bucket
spécifie le nom du bucket vers lequel télécharger, et Key
. est le nom de l'objet enregistré dans le bucket, Body
est le fichier à télécharger. Étape 4 : Téléchargez le fichier depuis le compartiment Amazon S3 Vous pouvez télécharger le fichier dans le compartiment via AWS SDK for Go : file, err := os.Open("example.txt") if err != nil { panic(err) } defer file.Close() _, err = minioClient.PutObject(context.Background(), "my-bucket", "example.txt", file, -1, minio.PutObjectOptions{}) if err != nil { panic(err) }Dans cet exemple, téléchargez le fichier "example.txt" du compartiment vers votre local ordinateur. La fonction
GetObject
permet d'obtenir l'objet stocké dans le Bucket. Le paramètre correspondant Bucket
précise le nom du bucket à obtenir, et la Key code> est le nom de l'objet enregistré dans le bucket, et enfin le contenu est écrit dans le fichier local. <p></p>Utilisation de MinIO<h3></h3>MinIO est un service de stockage d'objets open source qui prend en charge l'API Amazon S3. Il s'agit d'un service de stockage cloud distribué, évolutif et performant, adapté au travail avec de grands ensembles de données pour l'apprentissage automatique, l'analyse et la sauvegarde. <p></p>Étape 1 : Installez le SDK MinIO pour Go<p></p>Comme le stockage Amazon S3, pour utiliser le stockage MinIO, vous devez installer le SDK MinIO pour Go sur votre ordinateur : <h2><pre class='brush:go;toolbar:false;'>object, err := minioClient.GetObject(context.Background(), "my-bucket", "example.txt", minio.GetObjectOptions{})
if err != nil {
panic(err)
}
defer object.Close()
file, err := os.Create("example.txt")
if err != nil {
panic(err)
}
defer file.Close()
_, err = io.Copy(file, object)
if err != nil {
panic(err)
}</pre></h2>Étape 2 : Connectez-vous au serveur MinIO<p></p>Avant d'utiliser MinIO , vous devez vous connecter au serveur MinIO : 🎜rrreee🎜Le <code>ACCESS_KEY
et le SECRET_KEY
voici les informations d'identification que vous avez définies sur le serveur MinIO. 🎜🎜Étape 3 : Créer un bucket MinIO 🎜🎜La création d'un bucket MinIO est similaire à la création d'un bucket Amazon S3 : 🎜rrreee🎜Dans cet exemple, nous créons un bucket nommé "my-bucket". 🎜🎜Étape 4 : Télécharger un fichier dans un compartiment MinIO 🎜🎜Le téléchargement d'un fichier vers un compartiment MinIO est similaire au téléchargement d'un fichier vers un compartiment Amazon S3 : 🎜rrreee🎜Dans cet exemple, téléchargez le fichier "example.txt" dans un fichier nommé bucket "my -bucket". 🎜🎜Étape 5 : Téléchargez un fichier depuis un bucket MinIO 🎜🎜Le téléchargement d'un fichier depuis un bucket MinIO est similaire au téléchargement d'un fichier depuis un bucket Amazon S3 : 🎜rrreee🎜Dans cet exemple, copiez le fichier "example.txt" du fichier nommé " my-bucket " sur l'ordinateur local. 🎜🎜Conclusion🎜🎜 La mise en œuvre du stockage cloud pour les applications Web utilisant Golang est généralement une tâche relativement simple. AWS SDK for Go et MinIO SDK for Go fournissent tous deux des API pour travailler avec des services de stockage d'objets, permettant aux développeurs de télécharger et d'accéder facilement à des fichiers. Quel que soit le service de stockage que vous utilisez, vous devez vous familiariser avec son API et l'intégrer à votre application pour gérer facilement vos données. 🎜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!