使用 GCP PHP 客户端库创建文件夹

我开始通过Google提供的文档学习Google Cloud Storage PHP客户端库。但以下问题尚不清楚。

  1. 如何在存储桶中创建文件夹?

  2. 如何在文件夹中创建文件夹?

  3. 如何列出文件夹中的所有文件?

我了解到文件夹只不过是名称末尾带有“/”的对象。我们还可以使用上传对象的$bucket->upload()方法来上传对象。此方法需要文件路径,因此创建文件夹会遇到麻烦


qq_笑_17
浏览 62回答 2
2回答

蝴蝶不菲

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.txtMyDirectory请注意,命名空间中没有任何地方存储对象名称(目录)MyDirectory/something。这只是使用前缀和分隔符从对象名称派生而来。上面的 URL 将列出前两个对象。第三个将被跳过。API返回JSON数据,返回的数据有两种类型:items,它返回以前缀开头且后面prefix不包含前缀的 对象名称。delimiterprefixes,它返回被分隔符截断的对象名称 - 它提供了目录名称的等效项。换句话说,目录及其内容的幻象只是 Google Cloud Storage API 执行的一种奇特的解析技巧。

精慕HU

问题 1 的回答:只能通过云控制台创建空文件夹。您无法通过 SDK 函数在 GCP 存储桶中创建空文件夹。假设如果您想在存储桶中创建/test文件夹,请上传名为/test/file.txt. 确保您稍后在该/test文件夹中上传的文件不是file.txt问题2的答案:除了路径之外,与第一个问题几乎相同问题 3 的回答:可以使用额外的参数(例如 GCP SDK 提供的分隔符、前缀)来列出特定目录中的项目。
打开App,查看更多内容
随时随地看视频慕课网APP