0

我一直在试图弄清楚如何获取根级别的文件,这意味着获取所有文件名没有附加路径的文件。我有一个看起来像这样的容器

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.pngui

有没有办法做到这一点?

谢谢!

4

2 回答 2

1

2011 年 11 月 15 日第 20 页的云文件开发人员指南说:

您还可以使用分隔符参数来表示嵌套的目录层次结构,而无需目录标记对象。您可以使用任何单个字符作为分隔符。列表可以返回虚拟目录——它们是虚拟的,因为它们实际上并不代表真实的对象。但是,与目录标记一样,它们将具有应用程序/目录的内容类型,并且位于 json 和 xml 结果的子目录部分中。

如果您在容器中有以下对象——photos/photo1、photos/photo2、movieobject、videos/movieobj4,则使用斜杠 (/) 的分隔符参数查询将为您提供

  • 相片,
  • 电影对象,
  • 视频。

PHP SDK 中的 get_objects 不支持参数“delimiter”,使用它似乎是获取基目录文件的唯一方法。

当前在 github 中 有一个合并请求[此请求已被批准]将此特定参数添加到 get_objects 方法。

Rackspace Cloud Files API PHP SDK 的其他用户也添加了对该参数的支持。

查看原始的 php-cloudfiles repo 是否已更新,或者只是创建原始的 fork 并添加您自己的代码,如果您不喜欢添加自己的更改,请克隆一个添加了 delimiter 参数的 fork,例如

https://github.com/michealmorgan/php-cloudfileshttps://github.com/onema/php-cloudfiles

于 2012-03-13T18:32:41.503 回答
1

答案中引用的合并请求已于2012年5 月 9 日获得批准

为...get_objects添加了一个可选参数$delimiter

在此处输入图像描述

但是,在代码中引入了一个错误,如果尝试使用任何可选参数,则会错误地报告未设置容器名称。

已提出更正此错误的请求。

于 2012-07-12T07:53:27.090 回答