为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
qq_笑_17 2023-10-15 14:50:20
我开始通过Google提供的文档学习Google Cloud Storage PHP客户端库。但以下问题尚不清楚。如何在存储桶中创建文件夹?如何在文件夹中创建文件夹?如何列出文件夹中的所有文件?我了解到文件夹只不过是名称末尾带有“/”的对象。我们还可以使用上传对象的$bucket->upload()方法来上传对象。此方法需要文件路径,因此创建文件夹会遇到麻烦
查看完整描述

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数据,返回的数据有两种类型:

  1. items,它返回以前缀开头且后面prefix不包含前缀的 对象名称。delimiter

  2. prefixes,它返回被分隔符截断的对象名称 - 它提供了目录名称的等效项。

换句话说,目录及其内容的幻象只是 Google Cloud Storage API 执行的一种奇特的解析技巧。


查看完整回答
反对 回复 2023-10-15
?
精慕HU

TA贡献1845条经验 获得超8个赞

问题 1 的回答:只能通过云控制台创建空文件夹。您无法通过 SDK 函数在 GCP 存储桶中创建空文件夹。假设如果您想在存储桶中创建/test文件夹,请上传名为/test/file.txt. 确保您稍后在该/test文件夹中上传的文件不是file.txt

问题2的答案:除了路径之外,与第一个问题几乎相同

问题 3 的回答:可以使用额外的参数(例如 GCP SDK 提供的分隔符、前缀)来列出特定目录中的项目。


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信