繁体   English   中英

使用Python中的Storage JSON API列出Google存储中某个项目下的所有存储桶

[英]List all buckets under a project from the google storage using Storage JSON API in Python

我指的是下面的链接,在下面的链接中,我粘贴了代码的副本。 https://developers.google.com/apis-explorer/?hl=zh_CN#p/storage/v1/storage.buckets.list

   import requests
   response = requests.get('https://www.googleapis.com/storage/v1/b?project=
   {YOUR_PROJECT_NAME}&key={YOUR_API_KEY}')
   print(response.json())

当我尝试访问它时,出现以下错误

{'error': {'errors': [{'domain': 'global', 'reason': 'required', 'message': 'Anonymous users does not have storage.buckets.list access to project 72
8242242638.', 'locationType': 'header', 'location': 'Authorization'}], 'code': 401, 'message': 'Anonymous users does not have storage.buckets.list a
ccess to project 728242242638.'}}

我缺少哪一部分?

您缺少身份验证。 API密钥可识别项目,但不提供任何身份验证。 Google并不知道您确实是允许查看访问令牌的用户。

如果您希望命令真正快速gcloud并且已安装gcloud SDK,请运行gcloud auth print-access-token 那会给你一个像ya29.blibbity_blabbity的字符串。 将标头附加到您的请求中,显示为Authorization: Bearer ya29.blibbity_blabbity ,您的请求应该会成功。

访问令牌只能使用5分钟左右,并且您不应该将它们硬编码到代码中。 您将需要一个更永久的解决方案。 最简单的方法是只使用更高级别的Google Cloud库,例如google-cloud ,但是如果您想继续直接使用请求,则首先要了解更多Google Cloud身份验证的详细信息。 从这里开始: https : //cloud.google.com/docs/authentication

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM