返回顶部
首页 > 资讯 > 精选 >无法使用 gcloud 默认登录名签署 GCS 网址
  • 862
分享到

无法使用 gcloud 默认登录名签署 GCS 网址

2024-02-08 21:02:54 862人浏览 八月长安
摘要

PHP小编子墨在使用GCloud时,可能会遇到一个问题,就是无法使用默认的登录名签署GCS网址。这个问题可能会导致一些困扰,但我们可以找到解决办法。在这篇文章中,我们将介绍如何解决这个

PHP小编子墨在使用GCloud时,可能会遇到一个问题,就是无法使用默认的登录名签署GCS网址。这个问题可能会导致一些困扰,但我们可以找到解决办法。在这篇文章中,我们将介绍如何解决这个问题,让您能够顺利地使用gcloud来签署GCS网址。无论您是初学者还是有经验的开发者,本文都将为您提供清晰明了的解决方案。让我们一起来看看吧!

问题内容

我正在开发 golang 后端,并使用 cloud.Google.com/go/storage 库与我们的 gcs 实例进行通信。目前,我正在使用这个库来签署 url 并将媒体上传到我们的实例。但是,我想避免下载服务帐户密钥文件并出于本地开发目的显式设置 google_application_credentials 环境变量。为了实现这一目标,我按照参考文档提供了 adc 的用户凭据。

使用新的 adc 配置上传媒体工作正常。但是,当尝试使用以下代码片段对 url 进行签名时:

u, err := client.bucket(bucket).signedurl(object, &storage.signedurloptions{
        method:  Http.methodget,
        expires: time.now().add(365 * 24 * time.hour),
    })

我收到一条错误消息:

storage: unable to detect default GoogleAccessID: storage: empty client email in credentials

此错误消息令人费解,因为我在执行代码之前使用 gcloud auth application-default login 进行了身份验证。这里可能存在什么问题,我该如何解决它?

编辑: 我尝试添加 --impersonate-service-account 标志,指向具有令牌创建权限的服务帐户,但这似乎也不起作用。

解决方法

显然,这个问题在最新版本的 cloud.google.com/go/storage 中得到了解决(我在 GitHub 讨论中读到了相关内容,但由于某种原因无法再找到链接)。您必须将服务帐户附加到签名 URL,并且该库现在能够获取与模拟关联的 GoogleAccessID。升级到 v1.29.0 并使用 gcloud auth application-default login --impersonate-service-account= 进行身份验证后,一切似乎都正常工作。确保您的用户帐户在服务帐户下分配有“服务帐户令牌创建者”角色。

以上就是无法使用 gcloud 默认登录名签署 GCS 网址的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 无法使用 gcloud 默认登录名签署 GCS 网址

本文链接: https://lsjlt.com/news/562103.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作