2012-03-12 31 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

相關問題