Python 2 不再受社区支持。我们建议您将 Python 2 应用迁移到 Python 3

了解 Google Cloud Storage 功能

存储分区、对象和 ACL

存储分区是您在其中读写文件的存储位置。使用适用于 Cloud Storage 的 App Engine 客户端库时,必须始终指定存储分区。您的项目可以访问多个存储分区。请注意,客户端库不支持创建存储分区

访问控制列表 (ACL) 可控制对存储分区及其所含对象的访问权限。您在项目中创建存储分区时,您的项目和 App Engine 应用将被自动添加到允许访问存储分区的 ACL 中。

请注意,管理存储分区访问权限的 ACL 不同于管理该存储分区中具体对象访问权限的 ACL(可能有多个)。因此,您的应用对自身激活的存储分区具有读写权限,但仅对其在该存储分区中创建的对象具有完整权限。您的应用对由其他应用或个人创建的对象的访问权限,受限于对象创建者为您的应用授予的权限。

如果在存储分区中创建了某个对象而没有为该对象明确定义 ACL,则该对象会使用存储分区所有者分配给该存储分区的默认对象 ACL。如果存储分区所有者尚未指定默认对象 ACL,则对象默认为 public-read,这意味着可访问存储分区的任何人都可以读取该对象。

ACL 和客户端库

使用客户端库的应用无法更改存储分区 ACL,但可以为其创建的对象指定 ACL 以控制对这些对象的访问权限。open 方法的文档中介绍了可用的 ACL 设置。

修改 Cloud Storage 对象

一旦在存储分区中创建对象,您便无法修改或扩展该对象,而是必须使用包含所需更改的同名新对象覆盖该对象。

Cloud Storage 和子目录

适用于 Cloud Storage 的 App Engine 客户端库允许您在创建对象时提供子目录分隔符,但 Cloud Storage 中实际上不存在子目录,其中的所谓子目录实际上只是对象文件名的一部分。

例如,您可能认为创建对象 somewhere/over/the/rainbow.mp3 会将 rainbow.mp3 文件储存在子目录 somewhere/over/the/ 中。但是,对象名称设置为 somewhere/over/the/rainbow.mp3

使用 listbucket 过滤时,这个概念很重要。

如果这种方式不适合您,listbucket 还提供了一个可选的目录模拟模式。如需了解详情,请参阅 listbucket

后续步骤