【问题标题】:Rackspace Cloud Files PHP get_objects at the "Root level"Rackspace 云文件 PHP get_objects 在“根级别”
【发布时间】:2012-07-13 08:33:03
【问题描述】:

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

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

有没有办法做到这一点?

谢谢!

【问题讨论】:

    标签: api rackspace-cloud cloudfiles


    【解决方案1】:

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

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

    如果您有以下对象 - 照片/照片 1、照片/照片 2、 movieobject, videos/movieobj4——在容器中,你的分隔符 使用斜杠(/)的参数查询会给你

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

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

    目前在 github 中有一个 merge request [这个请求已经是 approved] 将此特定参数添加到 get_objects方法。

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

    查看原始 php-cloudfiles 存储库是否已更新或仅创建原始分支并添加您自己的代码,如果您不喜欢添加自己的更改,请克隆一个添加了分隔符参数的分支,例如

    https://github.com/michealmorgan/php-cloudfiles 或者 https://github.com/onema/php-cloudfiles

    【讨论】:

      【解决方案2】:

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

      $delimiter 添加了 get_objects 的可选参数 ...

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

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

      【讨论】:

      • 很好,不知道他们已经批准了合并请求:)
      • 如果你真的厌倦了使用它,那就太糟糕了!这里有一个修复:github.com/rackspace/php-cloudfiles/pull/72
      • 很高兴知道,我还没有更新到最新版本。但我会密切关注那个拉取请求,并在它被接受时得到它。到目前为止,下面的请求对我们来说效果很好。
      猜你喜欢
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多