很多这些答案都是旧的,看看Orbit 的答案,我认为从那时起 API 肯定有很多变化。由于ftrotter 已经解释了尝试直接上传,我将向您展示如何从 PHP tmp 目录发送文件的更新版本(PHP 5.3 风格)。
首先,我们假设您已经使用 composer 安装了 API。
首先,您需要包含他们的自动加载器,然后添加use
命名空间。
require 'vendor/autoload.php';
use OpenCloud\Rackspace as Rackspace;
然后您只需设置客户端实例
// first setup the client using your portal username and API key
$client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array(
'username' => 'YOUR-USERNAME',
'apiKey' => 'YOUR-API-KEY'
));
$region = 'DFW'; // can be ORD or various others and must be set
// now get the container
$container = $client->objectStoreService('cloudFiles', $region)
->getContainer('YOUR-CONTAINER');
现在你有了你的容器,你可以简单地设置你的文件数组并上传它们。这是一种快速而肮脏的方法:
if (isset($_FILES)) {
$files = array();
foreach ($_FILES as $file) {
if (0 === $file['error']) {
$files[] = array(
'name' => $file['name'],
'path' => $file['tmp_name']
);
}
}
if (count($files)) {
// upload files to Rackspace Cloud Files container
$result = $container->uploadObjects($files);
}
}
现在,当您的文件最终进入容器时,您的文件将保留其现有名称,并且您可以直接从 Rackspace Cloud 门户中获取容器的公共 URL 路径。