使用Python中的存储JSON API列出来自Google存储的项目下的所有存储桶

时间:2017-04-27 21:55:28

标签: python json google-cloud-platform google-cloud-storage

我在下面的链接和下面提到,我已粘贴了我的代码副本。 https://developers.google.com/apis-explorer/?hl=en_US#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.'}}

我缺少哪一部分?

1 个答案:

答案 0 :(得分:2)

您缺少身份验证。 API密钥标识项目,但它不提供任何类型的身份验证。 Google不知道您真的是允许查看访问令牌的用户。

如果您希望快速查看命令,并且安装了gcloud SDK,请运行gcloud auth print-access-token。这会给你一个像ya29.blibbity_blabbity这样的字符串。在您的请求中附加标题Authorization: Bearer ya29.blibbity_blabbity,您的请求应该会成功。

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