如何在php-opencloud中正确提取存档文件

use*_*304 2 php cloud sdk rackspace

我正在使用php-opencloud的1.7版本

这是我的代码的一部分.

$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);
Run Code Online (Sandbox Code Playgroud)

这个代码工作的问题是当它提取时只提取正确的第一级目录,其中所有目录名都与文件名连接在一起..它没有为每个目录创建一个目录.我确定我在这里缺少一些东西.

请看截图:http://i.stack.imgur.com/nfXlU.png

JRP*_*JRP 5

正确,你所看到的是预期的行为.云文件没有嵌套目录的概念(即,只有一个顶级容器).但是,您可以通过在对象名称中添加分隔符(如"/")来模拟层次结构,就像在屏幕截图中一样.

因此,如果您的存档具有嵌套结构,则每个文件路径在上载之前都会展平为字符串,并且该字符串将用作对象名称.

根据php-opencloud文档,如果省略容器名称(就像您在示例中所做的那样),则将根据存档内的文件名创建容器.