【问题标题】:How can I create/access a file in an other project's GCS bucket in Python?如何在 Python 中创建/访问其他项目的 GCS 存储桶中的文件?
【发布时间】:2016-02-22 18:50:26
【问题描述】:

我有 2 个项目(A 和 B),我想通过 A 将文件写入 B 的存储。 我已授予对我要写入的 B 存储桶上的 A 的写入权限。

我已经检查了https://cloud.google.com/storage/docs/json_api/v1/buckets/list

正如那里提到的那样,我可以通过将项目编号传递给客户来获取列表:

req = client.buckets().list(project=PROJECT_NUMBER)
res = req.execute()
...

到目前为止一切顺利。

当我检查 API 以列出给定的存储桶时,我被卡住了。

https://cloud.google.com/storage/docs/json_api/v1/buckets/get

https://cloud.google.com/storage/docs/json_api/v1/objects/insert

这些 API 不需要项目编号,只有存储桶名称。

如何确保将文件保存到项目 B 下的正确存储桶中?

我错过了什么?

提前感谢您的帮助!

【问题讨论】:

    标签: python google-app-engine google-cloud-storage


    【解决方案1】:

    Bucket 名称是全局唯一的,因此您在处理特定 Bucket 时无需指定项目编号。如果bucket "bucketOfProjectB" 属于项目B,那么你只需要调用buckets().get(bucket="bucketOfProjectB").execute(),即使调用它的用户属于项目A,它也可以工作(只要调用者有正确的权限)。

    列出存储桶或创建新存储桶时需要指定项目,因为存储桶都属于一个特定项目,但这是您唯一需要这样做的地方。

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      相关资源
      最近更新 更多