2013-11-06 3 views
2

im using версия 1.7 php-opencloudКак правильно извлечь файл архива в php-opencloud

heres часть моего кода.

$cloud = new Rackspace(RACKSPACE_US, $credentials); 
$storage = $cloud->objectStoreService('cloudFiles', 'SYD','publicURL'); 
$container = $storage->getContainer('testing'); 

$gz_file = 'test.tar.gz'; 

$storage->bulkExtract('', $gz_file); 

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

смотрите скриншот: http://i.stack.imgur.com/nfXlU.png

ответ

5

Правильно, что вы видите, это ожидаемое поведение. Облачные файлы не имеют понятия вложенных каталогов (а именно, только один верхний уровень контейнеров). Однако вы можете имитировать иерархию, как на скриншоте, путем добавления разделителя (например, '/') к имени объекта.

Итак, если ваш архив имеет вложенную структуру, каждый путь к файлу сглаживается в строку перед загрузкой, и эта строка используется как имя объекта.

Согласно the php-opencloud docs, если вы опустите имя контейнера (например, вы делаете в своем примере), тогда контейнеры будут созданы на основе имен файлов внутри архива.

+0

спасибо JRP, теперь его ясно. – user2337304

+0

Нет проблем. Пожалуйста, дайте мне знать, если у вас возникнут проблемы или у вас возникнут дополнительные вопросы. – JRP