2 回答
TA贡献1810条经验 获得超4个赞
Cloud Storage 存储桶中实际上并不存在文件夹。命名空间是扁平的。文件夹的印象由 Google Cloud Console 和其他工具模拟。文件/MyFolder/test.txt
和/YourFolder/test.txt
位于存储桶(根级别)中的同一级别(同一目录) - 我忽略对象名称哈希。工具使用该/
字符作为分隔符(定界符)来模拟文件夹。
子目录如何工作
使用 Google Cloud Storage REST API 时,通过使用 adelimeter=/
并指定目录名称的前缀来列出目录,例如:
https://www.googleapis.com/storage/v1/b/MYBUCKETNAME/o?prefix=MyDirectory/?delimiter=/
此 URL 通知 REST API 您想要列出以MyDirectory/
中断开头并在下一个分隔符之后继续的对象名称,例如:
MyDirectory/file1.txt MyDirectory/file2.txt MyDirectory/something/file3.txt
MyDirectory
请注意,命名空间中没有任何地方存储对象名称(目录)MyDirectory/something
。这只是使用前缀和分隔符从对象名称派生而来。
上面的 URL 将列出前两个对象。第三个将被跳过。
API返回JSON数据,返回的数据有两种类型:
items
,它返回以前缀开头且后面prefix
不包含前缀的 对象名称。delimiter
prefixes
,它返回被分隔符截断的对象名称 - 它提供了目录名称的等效项。
换句话说,目录及其内容的幻象只是 Google Cloud Storage API 执行的一种奇特的解析技巧。
TA贡献1845条经验 获得超8个赞
问题 1 的回答:只能通过云控制台创建空文件夹。您无法通过 SDK 函数在 GCP 存储桶中创建空文件夹。假设如果您想在存储桶中创建/test
文件夹,请上传名为/test/file.txt
. 确保您稍后在该/test
文件夹中上传的文件不是file.txt
问题2的答案:除了路径之外,与第一个问题几乎相同
问题 3 的回答:可以使用额外的参数(例如 GCP SDK 提供的分隔符、前缀)来列出特定目录中的项目。
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报