为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Google Cloud Storage 身份验证

使用 Google Cloud Storage 身份验证

Go
慕桂英546537 2021-11-15 17:03:29
我在服务器上运行了一个 go 应用程序。应用程序需要访问权限才能将图像保存到 Google Cloud Storage。从Google Cloud Storage 身份验证文档中可以看到如何创建 PKCS12 密钥。我在用import(storage "google.golang.org/api/storage/v1")您如何在应用程序中将这个密钥与 golang“存储”客户端一起使用?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

func ExampleJWTConfigFromJSON() {

    // Your credentials should be obtained from the Google

    // Developer Console (https://console.developers.google.com).

    // Navigate to your project, then see the "Credentials" page

    // under "APIs & Auth".

    // To create a service account client, click "Create new Client ID",

    // select "Service Account", and click "Create Client ID". A JSON

    // key file will then be downloaded to your computer.

    data, err := ioutil.ReadFile("/path/to/your-project-key.json")

    if err != nil {

        log.Fatal(err)

    }

    conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/bigquery")

    if err != nil {

        log.Fatal(err)

    }

    // Initiate an http.Client. The following GET request will be

    // authorized and authenticated on the behalf of

    // your service account.

    client := conf.Client(oauth2.NoContext)

    client.Get("...")

}

--


func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error)

{

    var key struct {

        Email      string `json:"client_email"`

        PrivateKey string `json:"private_key"`

    }

    if err := json.Unmarshal(jsonKey, &key); err != nil {

        return nil, err

    }

    return &jwt.Config{

        Email:      key.Email,

        PrivateKey: []byte(key.PrivateKey),

        Scopes:     scope,

        TokenURL:   JWTTokenURL,

    }, nil

}

详情:


https://github.com/golang/oauth2/blob/master/google/example_test.go https://github.com/golang/oauth2/blob/master/google/google.go


希望这会有所帮助。


查看完整回答
反对 回复 2021-11-15
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信