python - GCS 如何知道我正在使用哪个项目?

标签 python google-cloud-storage

一个简单的 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 StorageGoogle Cloud Storage JSON API

关于python - GCS 如何知道我正在使用哪个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501911/

相关文章:

python - 为初始请求获取属于所选国家/地区的城市

python - 如何回溯 python 2.7 中的函数?

python - 如何在 Google App Engine 中验证传入电子邮件地址的发件人?

image - 如何使用 Golang 将图像上传到 firebase 存储

google-app-engine - Google App Engine 删除了默认的 GCS 存储桶。有办法恢复吗?

google-bigquery - 如何跳过 BIGQUERY 加载 API 中的 csv 文件行

python - 无法使用 `azcopy login --tenant-id` 和 Azure 政府帐户的租户 ID 登录 Azure?

python - Python 3 中的图形、绘图

google-cloud-platform - 设置 Google 云数据存储时出现 "Unable to retrieve database locations"错误

go - ListObjectsV2 api 调用是否在 Google Cloud Storage 中实现?