Maison  >  Article  >  développement back-end  >  Comment implémenter le stockage cloud pour les applications Web à l'aide de Golang

Comment implémenter le stockage cloud pour les applications Web à l'aide de Golang

PHPz
PHPzoriginal
2023-06-24 11:12:30892parcourir

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.

Utilisation d'Amazon S3

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.

Étape 1 : Installez AWS SDK for Go

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

Étape 2 : Créer un compartiment Amazon S3

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表示您要创建的存储桶的名称。

步骤3:上传文件到Amazon S3存储桶

现在我们已经创建了存储桶,可以使用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是要上传的文件。

步骤4:从Amazon S3存储桶下载文件

您可以通过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

MinIO是一个开源对象存储服务,支持Amazon S3 API。它是一个可扩展、高性能和分布式的云存储服务,适用于将大型数据集用于机器学习、分析和备份。

步骤1:安装MinIO SDK for Go

与Amazon S3存储一样,要使用MinIO存储,您需要在计算机上安装MinIO SDK for Go:

go get -u github.com/minio/minio-go/v7

步骤2:连接到MinIO服务器

在使用MinIO之前,您需要连接到MinIO服务器:

minioClient, err := minio.New("play.min.io", "ACCESS_KEY", "SECRET_KEY", true)
if err != nil {
    panic(err)
}

这里的ACCESS_KEYSECRET_KEY

Étape 3 : Télécharger des fichiers dans le compartiment Amazon S3

Maintenant que nous avons créé le compartiment, nous pouvons télécharger des fichiers dans le compartiment à l'aide du kit AWS SDK for Go :

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(), &quot;my-bucket&quot;, &quot;example.txt&quot;, minio.GetObjectOptions{}) if err != nil { panic(err) } defer object.Close() file, err := os.Create(&quot;example.txt&quot;) 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!

Déclaration:
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