Как правильно извлечь архивный файл в php-opencloud


Я использую версию 1.7 php-opencloud

Вот некоторая часть моего кода.

$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

Author: user2337304, 2013-11-06

1 answers

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

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

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

 5
Author: JRP, 2013-11-06 16:41:15