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 の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。