Rackspace Cloud文件PHP get_objects在“根级别”

时间:2012-03-12 20:58:46

标签: api rackspace-cloud cloudfiles

我一直在试图弄清楚如何获取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

有办法做到这一点吗?

谢谢!

2 个答案:

答案 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 的可选参数...

enter image description here

但是,在某些其他方面的代码中引入了一个错误,如果有人试图使用任何可选参数,则会错误地报告容器名称未设置。

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