存储分区、对象和 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 中实际上不存在子目录,而 Cloud Storage 中的子目录是对象文件名的一部分。
例如,您可能认为创建对象 somewhere/over/the/rainbow.mp3
会将 rainbow.mp3
文件储存在子目录 somewhere/over/the/
中。但是,对象名称设置为 somewhere/over/the/rainbow.mp3
。
使用 listbucket
过滤时,这个概念很重要。
如果这种方式不适合您,listbucket
还提供了一个可选的目录模拟模式。如需了解详情,请参阅 listbucket。
后续步骤
- 访问 API 参考文档。
- 了解如何设置 Cloud Storage。