当前位置: 首页 > 面试题库 >

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

蒋弘致
2023-03-14
问题内容

我一直在努力了解如何使用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 App Engine应用程序访问云存储?


问题答案:

我努力让GCS也能与App
Engine一起使用。我在使用PEM和JSON密钥之间遇到了冲突的文档。我将本演示文稿放在一起讨论此问题,并教人们如何在App
Engine中使用GCS。

我能够使GCS与App
Engine一起使用。这是工作中的GCS应用引擎代码。

我还进行了详细介绍所有内容的演讲-
此播放列表中有两个或三个视频,详细介绍了GCS和应用程序引擎。



 类似资料:
  • 问题内容: 我在SO上发现了其他几个有关JavaMail API和通过SMTP服务器发送邮件的问题,但是没有一个使用TLS安全性进行讨论。我正在尝试使用JavaMail通过我的工作SMTP邮件服务器向我发送状态更新,但是它需要TLS,而且我在网上找不到任何有关如何使用JavaMail访问需要TLS加密的SMTP服务器的示例。有人能帮忙吗? 问题答案: 实际上,我们的产品中确实有一些通知代码,如果有

  • 我已经阅读了一些关于SaaS/PaaS/IaaS的信息,我在想: 如果我提供了一个SaaS应用程序,我的客户能否使用PaaS开发和部署他自己的应用程序,PaaS将使用一些API与我的SaaS应用程序交互?还是我对云服务的理解有误?

  • 本文向大家介绍Docker与Golang的巧妙结合,包括了Docker与Golang的巧妙结合的使用技巧和注意事项,需要的朋友参考一下 Docker与Golang的巧妙结合 【编者的话】这是一个展示在使用Go语言时如何让Docker更有用的提示与技巧的简辑。例如,如何使用不同版本的Go工具链来编译Go代码,如何交叉编译到不同的平台(并且测试结果!),或者如何制作真正小的容器镜像。 下面的文章假定你

  • 问题内容: 谁能给我指出一个完整的示例,而 不是 在App Engine上使用OAuth2和Flask对Google帐户进行身份验证? 我试图让用户授予对Google日历的访问权限,然后使用该访问权限从日历中检索信息并对其进行进一步处理。我还需要存储并稍后刷新OAuth2令牌。 我看过Google的oauth2client库,可以开始检索授权代码了,但是我从那里有点迷失了。通过查看Google的O

  • 问题内容: TextMate似乎使用了我假定的内置Python版本(sys.path不起作用)。您如何配置它以使用3.1?我已经安装了3.1软件包,并且可以将IDLE用于交互式会话,但是现在需要使用TextMate。 谢谢 问题答案: TextMate使用变量的值来查找Python解释器的路径。一个好的解决方案是利用TextMate的能力来定义变量(例如基于每个项目): 打开一个新的或现有的Tex

  • 问题内容: 我想使用并且在本节中非常基础,我需要一些帮助,并且在网上之前对此主题进行了研究,但是没有令人满意的解决方案。 1-如何FFmpeg通过使用。(我不想使用Ubuntu,请不要建议。) 2-如何通过插入命令? 最后通知:我使用和。 任何建议,将不胜感激。 问题答案: 如果您需要进一步的帮助,请确切说明您要实现的目标以及不起作用的目标… 更新-根据评论: 要在Android上通过命令行使用f