一个简单的 Python 代码,用于列出 Google Cloud Storage 中特定文件夹中的 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 开发者控制台激活适用于您的项目的 API。*">
我已经为我的项目启用了API,所以应该不是返回消息所说的问题,也许它跳转到了错误的项目?据我所知,流程应该是 -> GCS 中的项目 -> 存储桶 -> 根文件夹 -> 文件夹 1。
所以我的问题是这段代码如何知道我正在使用哪个项目?我在这里错过任何代码吗?
感谢大家的热心帮助!
最佳答案
单独的 API key 仅适用于访问公共(public)存储桶中的数据。 GCS 能够通过查看唯一的 API key 将 API 使用情况映射回您的项目。对于公共(public)数据访问之外的任何其他内容,您都需要适当的身份验证,例如通过 OAuth2。更多信息请点击这里: https://developers.google.com/storage/docs/json_api/v1/how-tos/authorizing
您的代码看起来不错,并且可以与公共(public)存储桶一起使用,我已经验证了这一点。确保您在开发者控制台中启用了 Google Cloud Storage 和 Google Cloud Storage JSON API。
关于python - GCS 如何知道我正在使用哪个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501911/