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

在 Appengine 上将 Google Cloud Storage 与 Golang 结合使用

在 Appengine 上将 Google Cloud Storage 与 Golang 结合使用

Go
万千封印 2021-11-29 19:14:05
我一直在努力理解如何使用 Go 在 App Engine 上正确使用 GCS。我读过一些堆栈帖子,提到 Go App Engine 开发服务器不模拟 GCS。现在还是这样吗?当我使用以下代码构建我的客户端时,我已经能够将对象存储到我的实际默认 GCS 中:ctx := appengine.NewContext(r)    jsonKey, err := ioutil.ReadFile("path/to/json.json")    if err != nil {        log.Fatal(err)    }    conf, err := google.JWTConfigFromJSON(        jsonKey,        storage.ScopeFullControl,    )    if err != nil {        log.Fatal(err)    }    client, err := storage.NewClient(ctx, cloud.WithTokenSource(conf.TokenSource(ctx)))这是在 App Engine 上使用云存储的首选方式吗?我问是因为我很困惑为什么某些示例应用引擎代码无法正常工作。例如,我试图遵循本示例中的代码(https://github.com/GoogleCloudPlatform/gcloud-golang/blob/master/examples/storage/appengine/app.go#L73)。您会注意到构建存储客户端只需使用client, err := storage.NewClient(ctx)使用此示例代码时出现googleapi: Error 401: Invalid Credentials, authError错误。这是一个错误还是我做错了什么?我应该通过哪种方式从 Go 应用引擎应用程序访问云存储?
查看完整描述

1 回答

?
月关宝盒

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

我也很难让 GCS 与应用引擎一起工作。我在使用 PEM 和 JSON 密钥时遇到了相互冲突的文档。我将这个演示文稿放在一起讨论这个问题,并教人们如何将 GCS 与应用程序引擎一起使用。

我能够让 GCS 与应用引擎一起工作。这是有效的 GCS 应用引擎代码

我还做了一个详细介绍所有这些的演讲 - 在这个播放列表中有两三个视频详细介绍了 GCS 和应用程序引擎。


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

添加回答

举报

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