Облачные файлы Rackspace PHP get_objects на уровне «root» - PullRequest
0 голосов
/ 13 марта 2012

Я пытался выяснить, как получить файлы, которые находятся на уровне 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 ]

1 голос
/ 12 июля 2012

Запрос на слияние, указанный в ответе, был одобрен 09 мая 2012 г.

Необязательный параметр для get_objects был добавлен для $delimiter ...

enter image description here

Однако в коде произошла ошибка, произошедшая в другой точке, которая ложно сообщает, что имя контейнера не задано, если кто-то пытается использовать любой из необязательных параметров.

Запрос был добавлен в для исправления этой ошибки.

1 голос
/ 13 марта 2012

Руководство разработчика облачных файлов от 15 ноября 2011 г., стр. 20 гласит:

Вы также можете использовать параметр разделителя для представления вложенного каталога. иерархия без необходимости указателя каталогов объектов. Вы можете используйте любой отдельный символ в качестве разделителя. Объявления могут вернуться виртуальные каталоги - они виртуальные в том смысле, что они на самом деле не представлять реальные объекты. как маркеры каталога, тем не менее, они будут иметь тип контента application / directory и находиться в поддиректории раздел результатов json и xml.

Если у вас есть следующие объекты - фотографии / фото1, фотографии / фото2, movieobject, videos / movieobj4 - в контейнере, ваш разделитель запрос параметра с использованием косой черты (/) даст вам

  • фото,
  • MovieObject
  • видео.

Параметр «разделитель» не поддерживается get_objects в PHP SDK, и использование его, по-видимому, является единственным способом получения файлов базовых каталогов.

В настоящее время существует запрос на слияние в github [ с тех пор этот запрос был одобрен ] добавление этот конкретный параметр для метода get_objects.

Другие пользователи API Rackspace Cloud Files PHP SDK также добавили поддержку для этого параметра.

Посмотрите, обновляется ли исходное хранилище php-cloudfiles, или просто создайте ветку оригинала и добавьте свой собственный код, если вам неудобно добавлять свои собственные изменения, клонируйте вилку, в которой добавлен параметр разделителя, например

https://github.com/michealmorgan/php-cloudfiles или же https://github.com/onema/php-cloudfiles

...