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

标签 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);

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

请看截图:/image/nfXlU.png

最佳答案

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

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

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

关于php - 如何在 php-opencloud 中正确提取存档文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19815202/

相关文章:

php - 除非刷新,否则写入文本文件不会更新

php - 替换 CSS 中的 css 值的正则表达式

Android 如何在 facebook 墙上发布自己的位图

javascript - 如何在浏览器中使用podio-js(没有Node.js)?

azure - 将 Code First 项目发布到云

web - Web应用程序和云应用程序之间的技术区别是什么?

php - Mysql 时间和日期之间的关系

php - PHP的异步电子邮件?

android - Android Studio on window 中缺少 SDK 模拟器目录

支持同步到云端和数据库游标接口(interface)的Android ORM