Rackspace Cloud Files PHP get_objects на уровне "root"
Я пытался выяснить, как получить файлы, которые находятся на уровне 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 и пользовательский интерфейс.
Есть ли способ сделать это?
Спасибо!
2 ответа
Руководство разработчика облачных файлов от 15 ноября 2011 г., стр. 20 гласит:
Вы также можете использовать параметр разделителя для представления вложенной иерархии каталогов без необходимости в объектах маркеров каталогов. Вы можете использовать любой отдельный символ в качестве разделителя. Списки могут возвращать виртуальные каталоги - они являются виртуальными в том смысле, что они на самом деле не представляют реальные объекты. однако, как и маркеры каталогов, они будут иметь тип содержимого application / directory и находиться в разделе subdir результатов json и xml.
Если у вас есть следующие объекты - фотографии / фото1, фотографии / фото2, фильмобъект, видео / 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
Запрос на слияние, указанный в ответе, был утвержден 09 мая 2012 г.
Необязательный параметр для get_objects
был добавлен для $delimiter
...
Однако в какой-то другой момент в код была введена ошибка, из-за которой ложно сообщалось, что имя контейнера не задано, если попытаться использовать какой-либо из дополнительных параметров.
Был подан запрос на исправление этой ошибки.