我一直在试图弄清楚如何获取Root级别的文件,这意味着获取所有没有路径附加到其文件名的文件。 我有一个看起来像这样的容器
image.png image/png
ui application/directory
ui/css application/directory
ui/css/test.css text/css
ui/image2.jpg image/jpg
我正在使用电话
Container->get_objects(0, null, null, 'ui/');
返回2个CF_Objects:
ui/css
ui/image2.jpg
这是所需的输出
但如果我在“根级”请求文件
Container->get_objects(0, null, null, '/');
返回一个空数组。
Container->get_objects(0, null, null, '');
返回容器中的所有文件。
理想情况下,它会返回两个CF_Objects image.png 和 ui 。
有办法做到这一点吗?
谢谢!
答案 0 :(得分:1)
2011年11月15日的Cloud Files Developer指南第20页说:
您还可以使用分隔符参数来表示嵌套目录 层次结构,不需要目录标记对象。您可以 使用任何单个字符作为分隔符。列表可以返回 虚拟目录 - 它们是虚拟的,因为它们实际上并非如此 代表真实物体。比如目录标记,他们会 有一个内容类型的应用程序/目录,并在一个子目录中 json和xml结果的一部分。
如果你有以下物品 - 照片/照片1,照片/照片2, movieobject,videos / movieobj4-在容器中,你的分隔符 使用斜杠(/)的参数查询会给你
- 照片,
- 的MovieObject,
- 视频。
参数"分隔符" PHP SDK中的get_objects不支持,并且使用它似乎是获取基本目录文件的唯一方法。
目前在github中有merge request [此请求已经approved ] 添加此特定内容get_objects方法的参数。
Rackspace Cloud Files API PHP SDK的其他用户也对此参数added提供支持。
查看原始的php-cloudfiles repo是否得到更新,或者只是创建原始的fork并添加自己的代码,如果您不习惯添加自己的更改,请克隆添加了delimiter参数的fork像
https://github.com/michealmorgan/php-cloudfiles 要么 https://github.com/onema/php-cloudfiles
答案 1 :(得分:1)
答案中引用的合并请求是 2012年5月9日的approved
为 get_objects
添加 $delimiter
的可选参数...
但是,在某些其他方面的代码中引入了一个错误,如果有人试图使用任何可选参数,则会错误地报告容器名称未设置。
请求has been put in以更正此错误。