当前位置: 首页 > 知识库问答 >
问题:

如何正确授权请求到谷歌云存储API?

卢伟志
2023-03-14

我正在尝试使用Google云存储JSON API使用http调用从一个bucket中检索文件。

我在GCE中的一个容器中卷曲,与存储桶在同一个项目中,服务号具有对存储桶的读取访问权限

以下是请求的模式:

https://storage.googleapis.com/{bucket}/{object}

根据API控制台,我不需要任何特别的东西,因为服务帐户提供应用程序默认凭据。然而,我一直有这样的想法:

Anonymous caller does not have storage.objects.get

我还尝试为项目创建一个API密钥,并将其附加到url(https://storage.googleapis.com/{bucket}/{object}?key={key})但是我仍然得到了相同的401错误。

如何授权查询此API的请求?

共有1个答案

柴茂材
2023-03-14

您使用的URL不正确。API使用以https://www.googleapis.com/storage/v1/b

不建议使用API密钥。相反,您应该使用承载:令牌。我将展示这两种方法。

要获取gCloud默认配置的访问令牌:

gcloud auth打印访问令牌

然后在curl请求中使用令牌。用gcloud命令中的令牌替换令牌。

要列出存储桶,请执行以下操作:

curl -s -H "Authorization: Bearer TOKEN" https://www.googleapis.com/storage/v1/b

curl https://www.googleapis.com/storage/v1/b?key=APIKEY

要列出对象,请执行以下操作:

curl -s -H "Authorization: Bearer TOKEN" https://www.googleapis.com/storage/v1/b/examplebucket/o

curl https://www.googleapis.com/storage/v1/b/examplebucket/o?key=APIKEY

API参考:列出存储桶

 类似资料:
  • 我有一个具有统一访问控制的Google云存储桶,我在权限中添加了“诱惑者”。它说该对象是公共的,但当我尝试打开链接时,仍会收到此消息:“匿名调用方没有storage.objects.get access to the Google Cloud storage object”错误代码为“401”。我希望任何用户都能够访问该链接。我该怎么做?提前谢谢! 向你问好本

  • 我知道可以使用谷歌API视觉在网上找到类似的图片。我的目标是根据我的图像数据库找到类似的图像。我不想在网上看到类似的图片。 可能吗? 如果是,你能给我一些链接或建议吗? 谢谢

  • 我创建了一个服务帐户,并为其分配了访问云功能的权限: gcloud beta函数add-iam-policy-binding MyFunction--member=serviceaccount:cf-access@my-project.iam.gserviceaccount.com--role=roles/cloudfunctions.admin 产出: 现在,我下载了服务帐户json文件。 所以

  • 我正在尝试在Android设备上使用一个简单的电话差距应用程序。因此,我遵循了所有步骤,创建了一个项目,该应用程序成功地与GCM服务器通信,并使用我的项目编号获取注册ID。 问题是我不能从服务器端与GCM通信。我最初是在Perl中这样做的,但是即使是GCM文档中的curl example也返回“401”。 他们的API访问密钥被列入了白名单,我试着删除它并创建新的几次。甚至尝试使用浏览器密钥而不是