GCS如何知道我使用的是哪个项目?

时间:2014-03-19 09:49:49

标签: python google-cloud-storage

一个简单的Python代码,用于在Google云端存储中的某个文件夹中列出obj:

from apiclient import discovery
import apiclient
import json

client = discovery.build('storage', 'v1beta2')

request = client.objects().list(
    bucket = 'mybucket',
    prefix = 'myfolder1/myfolder',
    key =   'A0rsER3odwksawsesse3Dw_d3Ks') # my API key

try:
    response = request.execute()
    print json.dumps(response, indent = 2)

except apiclient.errors.HttpError, e:
    print e

然后我收到了失败信息:

https://www.googleapis.com/storage/v1beta2/b/mybucket/o?prefix=myfolder1%2Fmyfolder&alt=json&key=A0rsER3odwksawsesse3Dw_d3Ks返回" *未配置访问权限。请使用Google Developers Console激活项目的API。*">

我为我的项目启用了API,所以它不应该是问题,因为返回消息说,也许它跳转到不正确的项目?据我所知,流程应该是 - > GCS中的项目 - >桶 - > root-folder - >文件夹1。

所以我的问题是这段代码如何知道我正在使用哪个项目?我在这里想念任何代码吗?

感谢所有的帮助!

1 个答案:

答案 0 :(得分:4)

仅API密钥仅适用于访问公共存储桶中的数据。 GCS能够通过查看唯一的API密钥将API使用情况映射回您的项目。除了公共数据访问之外的任何其他内容,您需要通过OAuth2进行适当的身份验证。更多信息: https://developers.google.com/storage/docs/json_api/v1/how-tos/authorizing

您的代码看起来不错,它适用于公共存储桶,我已经验证过。确保您在开发者控制台中启用了 Google云端存储 Google云端存储JSON API