ホームページ  >  記事  >  バックエンド開発  >  Go での Google Cloud Storage の使用: 完全ガイド

Go での Google Cloud Storage の使用: 完全ガイド

WBOY
WBOYオリジナル
2023-06-17 11:27:101308ブラウズ

Go での Google Cloud Storage の使用: 完全ガイド

Google Cloud Storage は、Google Cloud Platform にデータを保存し、データにアクセスするためのオブジェクト ストレージ ソリューションです。さまざまなアプリケーションに簡単に統合できる、高速でスケーラブルで安全なストレージ サービスを提供します。この記事では、Go 言語で Google Cloud Storage を使用してオブジェクトやファイルを処理する方法を学びます。

準備

始める前に、Google Cloud SDK と Go 言語環境をインストールする必要があります。また、Google Cloud Platform でプロジェクトを作成し、Google Cloud Storage API を有効にする必要があります。これは、Google Cloud Console にアクセスすることで実行できます。次に、次のコマンドを実行してデフォルトの Google Cloud プロジェクトを設定する必要があります:

gcloud config set project [PROJECT_ID]

次に、Go 言語で Google Cloud Storage を使用する前に、Google Cloud Storage Go クライアント ライブラリもインストールする必要があります。これを行うには、ターミナルで次のコマンドを入力します。

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

バケットの作成

Google Cloud Storage でホストされているオブジェクトはバケットに保存する必要があります。バケットは、オブジェクト(フォルダーと同様)を保存するために Google Cloud Storage によって管理される名前空間です。 Go 言語でバケットを作成するには、次のコードを使用できます。

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

この例では、コンテキストと Google Cloud Storage Go クライアント ライブラリを使用して新しいクライアントを作成しました。次に、バケット名を指定して作成します。 Google Cloud Storage Go クライアント ライブラリは、Google Cloud SDK または環境変数を介して設定される必要な認証をすべて処理します。最後に、このコードは成功を示すバケットの名前を出力します。

バケットへのオブジェクトの保存

バケットを作成したら、その中にオブジェクトを保存できます。 Go 言語では、次のコードを使用してオブジェクトをバケットに保存できます。

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

このコードでは、バケットを作成し、その中に「test-object」という名前のオブジェクトを保存します。 google.golang.org/api/option で提供されている環境変数ヘルパーを使用して、Google Cloud が管理するトークンを自動的に取得し、バケット名、オブジェクト名、オブジェクトの内容をそれぞれ設定しました。 NewWriter 関数を使用して、新しいオブジェクト ライターを作成します。オブジェクトの作成者にコンテンツを提供し、オブジェクトが閉じられたときにそのオブジェクトも解放されるようにします。最後に、オブジェクトが正常に作成されたことを示すメッセージをコンソールに出力します。

オブジェクトの取得

バケット内のオブジェクトの取得は、オブジェクトの保存と同じです。次のコードを使用してバケットからオブジェクトを取得します。

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# を使用します。 ##メカニズムは解放され、オブジェクトの内容を読み取り、コンソールに出力します。

オブジェクトとバケットの削除

最後に、次のコードを使用して、バケット内のオブジェクトとバケット自体を削除することもできます。

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

このコードでは、

を使用します。削除 この関数は、バケット内のオブジェクトとバケット自体を削除します。

結論

上記は、Go 言語で Google Cloud Storage を使用するための完全なガイドです。 Google Cloud Storage Go クライアント ライブラリを使用すると、バケットの作成、オブジェクトの保存と取得、バケットとオブジェクトの管理を簡単に行うことができます。 Google Cloud Storage はスケーラブルなソリューションであるため、データ量の制限を気にすることなく、必要に応じてデータを保存および管理できます。

以上がGo での Google Cloud Storage の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。