一个简单的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。
所以我的问题是这段代码如何知道我正在使用哪个项目?我在这里想念任何代码吗?
感谢所有的帮助!
答案 0 :(得分:4)
仅API密钥仅适用于访问公共存储桶中的数据。 GCS能够通过查看唯一的API密钥将API使用情况映射回您的项目。除了公共数据访问之外的任何其他内容,您需要通过OAuth2进行适当的身份验证。更多信息: https://developers.google.com/storage/docs/json_api/v1/how-tos/authorizing
您的代码看起来不错,它适用于公共存储桶,我已经验证过。确保您在开发者控制台中启用了 Google云端存储和 Google云端存储JSON API 。