Maison  >  Article  >  développement back-end  >  Utiliser Google Cloud Storage dans Go : un guide complet

Utiliser Google Cloud Storage dans Go : un guide complet

WBOY
WBOYoriginal
2023-06-17 11:27:101251parcourir

Utiliser Google Cloud Storage dans Go : un guide complet

Google Cloud Storage est une solution de stockage d'objets permettant de stocker et d'accéder aux données dans Google Cloud Platform. Il fournit des services de stockage rapides, évolutifs et sécurisés, faciles à intégrer dans une variété d'applications. Dans cet article, nous apprendrons comment utiliser Google Cloud Storage en langage Go pour gérer des objets et des fichiers.

Préparation

Avant de commencer, vous devez installer le SDK Google Cloud et l'environnement linguistique Go. Vous devez également créer un projet sur Google Cloud Platform et activer l'API Google Cloud Storage. Cela peut être fait en accédant à Google Cloud Console. Ensuite, vous devez exécuter la commande suivante pour configurer le projet Google Cloud par défaut :

gcloud config set project [PROJECT_ID]

Ensuite, avant d'utiliser Google Cloud Storage en langage Go, vous devez également installer la bibliothèque client Google Cloud Storage Go. . Cela peut être fait en saisissant la commande suivante dans le terminal :

go get -u cloud.google.com/go/storage

Créer un bucket

Les objets hébergés dans Google Cloud Storage doivent être stockés dans un bucket. Bucket est un espace de noms géré par Google Cloud Storage pour stocker des objets (similaires aux dossiers). Pour créer un langage Bucket in Go, vous pouvez utiliser le code suivant :

package main

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/storage"
)

func main() {
    ctx := context.Background()
    client, err := storage.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }

    bucketName := "my-bucket"
    if err := client.Bucket(bucketName).Create(ctx, "my-project", nil); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Bucket %v created.
", bucketName)
}

Dans cet exemple, nous avons créé un nouveau client en utilisant le contexte et la bibliothèque client Google Cloud Storage Go. Ensuite, nous spécifions le nom du bucket et le créons. La bibliothèque client Google Cloud Storage Go gère pour nous toute l'authentification nécessaire, qui est configurée via le SDK Google Cloud ou des variables d'environnement. Enfin, ce code affichera le nom du bucket pour indiquer le succès.

Stockage d'objets dans des buckets

Une fois que vous avez créé un bucket, vous pouvez y stocker des objets. En langage Go, les objets peuvent être stockés dans un Bucket en utilisant le code suivant :

package main

import (
    "context"
    "fmt"
    "io/ioutil"
    "log"

    "cloud.google.com/go/storage"
)

func main() {
    ctx := context.Background()
    client, err := storage.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }

    bucketName := "my-bucket"
    objectName := "test-object"
    content := []byte("hello world")

    writer := client.Bucket(bucketName).Object(objectName).NewWriter(ctx)
    if _, err := writer.Write(content); err != nil {
        log.Fatal(err)
    }
    if err := writer.Close(); err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Object %v created in bucket %v.
", objectName, bucketName)
}

Dans ce code, nous créons un Bucket et y stockons un objet nommé "test-object". Nous avons utilisé l'assistant de variable d'environnement fourni dans google.golang.org/api/option pour obtenir automatiquement le jeton géré par Google Cloud et définir respectivement le nom du bucket, le nom de l'objet et le contenu de l'objet. Utilisez la fonction NewWriter pour créer un nouvel écrivain d'objet. Nous fournissons du contenu au rédacteur de l'objet et veillons ensuite à ce que l'objet soit également publié lorsqu'il est fermé. Enfin, nous imprimons un message à la console indiquant que l'objet a été créé avec succès. NewWriter函数创建一个新的对象写入器。我们向对象写入器提供内容,然后确保对象关闭后也释放。最后,我们将成功创建对象的消息输出到控制台。

检索对象

检索Bucket中的对象与存储对象相同。使用以下代码从Bucket中检索对象:

package main

import (
    "context"
    "fmt"
    "io/ioutil"
    "log"

    "cloud.google.com/go/storage"
)

func main() {
    ctx := context.Background()
    client, err := storage.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }

    bucketName := "my-bucket"
    objectName := "test-object"

    reader, err := client.Bucket(bucketName).Object(objectName).NewReader(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer reader.Close()

    content, err := ioutil.ReadAll(reader)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Object %v in bucket %v contains: %v", objectName, bucketName, string(content))
}

在此代码中,我们使用NewReader函数创建一个新的对象读取器,读取完后使用defer机制释放,然后读取对象内容并将其输出到控制台。

删除对象和Bucket

最后,您还可以使用以下代码删除Bucket中的对象和Bucket本身:

package main

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/storage"
)

func main() {
    ctx := context.Background()
    client, err := storage.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }

    bucketName := "my-bucket"
    objectName := "test-object"

    if err := client.Bucket(bucketName).Object(objectName).Delete(ctx); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Object %v deleted from bucket %v.
", objectName, bucketName)

    if err := client.Bucket(bucketName).Delete(ctx); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Bucket %v deleted.
", bucketName)
}

在此代码中,使用Delete

Récupérer des objets

Récupérer des objets dans un bucket revient à stocker des objets. Utilisez le code suivant pour récupérer les objets du Bucket :

rrreee

Dans ce code, nous utilisons la fonction NewReader pour créer un nouveau lecteur d'objet, et après l'avoir lu, utilisez defer libère, puis lit le contenu de l'objet et l'envoie à la console. #🎜🎜##🎜🎜#Suppression d'objets et de buckets#🎜🎜##🎜🎜#Enfin, vous pouvez également supprimer des objets dans un bucket et le bucket lui-même en utilisant le code suivant : #🎜🎜#rrreee#🎜🎜#Dans ce code , utilisez la fonction Delete pour supprimer les objets dans le bucket et le bucket lui-même. #🎜🎜##🎜🎜#Conclusion#🎜🎜##🎜🎜#Ce qui précède est le guide complet pour utiliser Google Cloud Storage en langage Go. Avec la bibliothèque client Google Cloud Storage Go, nous pouvons facilement créer des buckets, stocker et récupérer des objets, et gérer des buckets et des objets. Google Cloud Storage étant une solution évolutive, vous pouvez stocker et gérer les données selon vos besoins sans vous soucier des limitations du volume de 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