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

时间:2013-11-06 14:50:59

标签: php sdk cloud 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);

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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