很多這些答案都是老看着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