2012-03-12 29 views
0

我一直在试图弄清楚如何获取位于根级别的文件,这意味着获取没有附加到其文件名的路径的所有文件。 我有一个容器,看起来像这样Rackspace Cloud在“根级”文件中获取PHP get_objects

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

有没有办法做到这一点?

谢谢!

回答

1

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

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

如果您有以下对象 - 照片/照片1,照片/照片2, 影片对象,视频/ movieobj4,在一个容器中,用斜杠定界符 参数查询(/)会给你

  • 照片,
  • movieobject,
  • 视频。

参数“分隔符”是不是由PHP SDK的支持get_objects,并用它似乎是得到基本目录文件的唯一途径。

目前在github上一个merge request [该请求,此后一直approved]增加了get_objects方法这个特定的参数。

Rackspace Cloud Files API PHP SDK的其他用户也对此参数支持added

看看原始的php-cloudfiles回购是否得到更新,或者只是创建一个原始的分支并添加自己的代码,如果您觉得不适合添加自己的更改,请克隆添加了分隔符参数的分支,如

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

1

的合并请求在回答中引用的approved 2012年5月9日

可选PARAMET呃为get_objects加入了$delimiter ...

enter image description here

然而,有在其谎报如果试图向Container名称未设置其他一些点引入到代码中的错误使用任何可选参数。

请求has been put in更正此错误。

+0

不错,不知道他们已经批准合并请求:) – Onema 2012-07-12 17:45:38

+0

如果您真的厌倦了使用它,那么会引入一个错误!这里有一个修复:https://github.com/rackspace/php-cloudfiles/pull/72 – 2012-07-13 00:33:46

+0

很高兴知道,我还没有更新到最新版本。但我会密切关注这个拉取请求,并在接受时收到。到目前为止,下面的请求对我们来说工作得非常好。 – Onema 2012-07-13 05:32:14

相关问题