Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von Google Cloud Storage in Go: Eine vollständige Anleitung

Verwendung von Google Cloud Storage in Go: Eine vollständige Anleitung

WBOY
WBOYOriginal
2023-06-17 11:27:101253Durchsuche

Verwendung von Google Cloud Storage in Go: Eine vollständige Anleitung

Google Cloud Storage ist eine Objektspeicherlösung in der Google Cloud Platform zum Speichern und Zugreifen auf Daten. Es bietet schnelle, skalierbare und sichere Speicherdienste, die sich einfach in eine Vielzahl von Anwendungen integrieren lassen. In diesem Artikel erfahren Sie, wie Sie Google Cloud Storage in der Go-Sprache zum Umgang mit Objekten und Dateien verwenden.

Vorbereitung

Bevor Sie beginnen, müssen Sie das Google Cloud SDK und das Go-Gebietsschema installieren. Sie müssen außerdem ein Projekt auf der Google Cloud Platform erstellen und die Google Cloud Storage API aktivieren. Dies kann durch Zugriff auf die Google Cloud Console erfolgen. Anschließend müssen Sie den folgenden Befehl ausführen, um das Standard-Google Cloud-Projekt einzurichten:

gcloud config set project [PROJECT_ID]

Als Nächstes müssen Sie vor der Verwendung von Google Cloud Storage in der Go-Sprache auch die Google Cloud Storage Go-Clientbibliothek installieren. Dies kann durch Eingabe des folgenden Befehls im Terminal erfolgen:

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

Bucket erstellen

In Google Cloud Storage gehostete Objekte müssen in einem Bucket gespeichert werden. Bucket ist ein von Google Cloud Storage verwalteter Namespace zum Speichern von Objekten (ähnlich wie Ordnern). Um einen Bucket in Go zu erstellen, können Sie den folgenden Code verwenden:

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)
}

In diesem Beispiel haben wir einen neuen Client mithilfe von Kontext und der Google Cloud Storage Go-Clientbibliothek erstellt. Dann geben wir den Bucket-Namen an und erstellen ihn. Die Google Cloud Storage Go-Clientbibliothek übernimmt für uns die gesamte erforderliche Authentifizierung, die über das Google Cloud SDK oder Umgebungsvariablen konfiguriert wird. Schließlich gibt dieser Code den Namen des Buckets aus, um den Erfolg anzuzeigen.

Objekte im Bucket speichern

Sobald Sie einen Bucket erstellt haben, können Sie Objekte darin speichern. In der Go-Sprache können Objekte mit dem folgenden Code in einem Bucket gespeichert werden:

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)
}

In diesem Code erstellen wir einen Bucket und speichern darin ein Objekt mit dem Namen „test-object“. Wir haben den in google.golang.org/api/option bereitgestellten Umgebungsvariablen-Helfer verwendet, um automatisch das von Google Cloud verwaltete Token abzurufen und den Bucket-Namen, den Objektnamen bzw. den Objektinhalt festzulegen. Verwenden Sie die Funktion NewWriter, um einen neuen Objektwriter zu erstellen. Wir stellen dem Objektschreiber Inhalte zur Verfügung und sorgen dann dafür, dass das Objekt auch freigegeben wird, wenn es geschlossen wird. Abschließend geben wir eine Meldung an die Konsole aus, dass das Objekt erfolgreich erstellt wurde. 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

Objekte abrufen

Das Abrufen von Objekten in einem Bucket ist dasselbe wie das Speichern von Objekten. Verwenden Sie den folgenden Code, um Objekte aus dem Bucket abzurufen:

rrreee

In diesem Code verwenden wir die Funktion NewReader, um einen neuen Objektleser zu erstellen, und verwenden nach dem Lesen defer Der Mechanismus wird freigegeben, liest dann den Objektinhalt und gibt ihn an die Konsole aus. 🎜🎜Objekte und Bucket löschen🎜🎜Schließlich können Sie mit dem folgenden Code auch Objekte in Bucket und Bucket selbst löschen: 🎜rrreee🎜In diesem Code verwenden Sie die Funktion Löschen, um Objekte und Bucket in Bucket zu löschen selbst. 🎜🎜Fazit🎜🎜Das Obige ist die vollständige Anleitung zur Verwendung von Google Cloud Storage in der Go-Sprache. Mit der Google Cloud Storage Go-Clientbibliothek können wir ganz einfach Buckets erstellen, Objekte speichern und abrufen sowie Buckets und Objekte verwalten. Da es sich bei Google Cloud Storage um eine skalierbare Lösung handelt, können Sie Daten nach Bedarf speichern und verwalten, ohne sich über Einschränkungen des Datenvolumens Gedanken machen zu müssen. 🎜

Das obige ist der detaillierte Inhalt vonVerwendung von Google Cloud Storage in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn