>  기사  >  백엔드 개발  >  Go에서 Google Cloud Storage 사용: 전체 가이드

Go에서 Google Cloud Storage 사용: 전체 가이드

WBOY
WBOY원래의
2023-06-17 11:27:101253검색

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 또는 환경 변수를 통해 구성되는 필요한 모든 인증을 처리합니다. 마지막으로 이 코드는 성공을 나타내는 버킷 이름을 출력합니다.

Storing Objects in Bucket

일단 버킷을 생성하면 그 안에 객체를 저장할 수 있습니다. Go 언어에서는 다음 코드를 사용하여 객체를 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"
    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)
}

이 코드에서는 Bucket을 만들고 여기에 "test-object"라는 객체를 저장합니다. google.golang.org/api/option에서 제공되는 환경 변수 도우미를 사용하여 Google Cloud에서 관리하는 토큰을 자동으로 가져오고 버킷 이름, 객체 이름, 객체 콘텐츠를 각각 설정했습니다. 새로운 객체 작성기를 생성하려면 NewWriter 함수를 사용하세요. 객체 작성자에게 콘텐츠를 제공한 다음 객체가 닫힐 때 객체도 해제되는지 확인합니다. 마지막으로 객체가 성공적으로 생성되었다는 메시지를 콘솔에 인쇄합니다. 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

객체 검색

버킷에서 객체를 검색하는 것은 객체를 저장하는 것과 같습니다. 다음 코드를 사용하여 버킷에서 객체를 검색합니다.

rrreee

이 코드에서는 NewReader 함수를 사용하여 새 객체 리더를 생성하고, 읽은 후 defer를 사용합니다. > 메커니즘이 해제된 다음 개체 내용을 읽고 콘솔에 출력합니다. 🎜🎜객체 및 버킷 삭제🎜🎜마지막으로 다음 코드를 사용하여 Bucket 및 Bucket 자체의 객체를 삭제할 수도 있습니다. 🎜rrreee🎜이 코드에서는 Delete 함수를 사용하여 Bucket 및 Bucket의 객체를 삭제합니다. 그 자체. 🎜🎜결론🎜🎜위 내용은 Go 언어로 Google Cloud Storage를 사용하기 위한 전체 가이드입니다. Google Cloud Storage Go 클라이언트 라이브러리를 사용하면 쉽게 버킷을 만들고, 객체를 저장 및 검색하고, 버킷과 객체를 관리할 수 있습니다. Google Cloud Storage는 확장 가능한 솔루션이므로 데이터 볼륨 제한에 대한 걱정 없이 필요에 따라 데이터를 저장하고 관리할 수 있습니다. 🎜

위 내용은 Go에서 Google Cloud Storage 사용: 전체 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.