如何在Python中的其他项目的GCS存储桶中创建/访问文件?

时间:2016-02-22 18:50:27

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

我有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下的正确存储桶中?

我想念什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

在列出存储桶或创建新存储桶时,必须指定项目,因为存储桶都属于一个特定项目,但这是您需要执行此操作的唯一位置。