Как правильно распаковать архивный файл в php-opencloud
Im использует версию 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
1 ответ:
Правильно, то, что вы видите, - это ожидаемое поведение. Облачные файлы не имеют понятия вложенных каталогов (а именно, существует только один верхний уровень контейнеров). Однако вы можете смоделировать иерархию, как на скриншоте, добавив разделитель (например,'/') к имени объекта.
Таким образом, если ваш архив имеет вложенную структуру, каждый путь к файлу сглаживается в строку перед загрузкой, и эта строка используется в качестве имени объекта.
Согласно php-opencloud docs , Если вы опустите имя контейнера (как вы делаете в своем примере), то контейнеры будут созданы на основе имен файлов внутри архива.