很多这些答案都是老看着Orbit's answer我觉得从那以后一定有许多更改API。而且由于试图直接上传的ftrotter already explained,我将向您展示如何从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的云门户网站中的权利得到您的集装箱公共URL路径将保持其现有名称。
很好的答案 - 谢谢!必须检查其他地方的这个简单示例(帐户被暂停)。也许它在Wayback机器上。在我的情况下,我有一个iOS应用程序,我宁愿将文件直接发布到Rackspace文件。当然,我们不能在应用程序中拥有访问密钥!我记得Facebook曾经有一种机制,通过它可以在服务器上生成令牌(通过SSL请求),然后在有限的时间内由应用使用。它从来没有被公开保存过(仅限于安全钥匙串)。也许有一种方法可以做到这一点Rackspace文件?我甚至不保存令牌。根据需要使用它。 – 2010-11-17 16:45:10
您现在可以直接将文件上传到云文件。您为请求创建令牌/签名,并可以使用表单直接提交。请参阅http://docs.rackspace.com/files/api/v1/cf-devguide/content/Create_the_Form-d1a777.html – DesignerGuy 2014-04-27 21:34:42