2013-10-12 167 views
0

之間複製我嘗試使用方法CloudFiles無法虛擬目錄

CF_container->copy_object_to('th/image_a.jpg',Object(CF_container),'th/image_a_copy.jpg') 

複製一對夫婦位於我的容器上的文件,但是當我嘗試複製存在我得到這個消息的文件

Specified object 'container_name/th/image_a.jpg' did not exist as source to copy from or 'container_name' did not exist as target to copy to. 

我做錯了什麼?這個操作是不可能做到的?這個操作不允許?

感謝您的回答。

回答

3

看起來您正在使用來自php-cloudfiles的SDK。 copy_object_to函數可以在github上找到here

該庫已被廢除,用於php-opencloud。可以找到文檔here

複製對象時使用的新函數是DataObject :: Copy,可以找到here

編程邏輯,以與PHP-opencloud庫雲文件對象的副本看起來像下面這樣:

// we must include this file 
require_once "php-opencloud.php"; 

define('AUTHURL', RACKSPACE_US); 

// create new Rackspace connection 
$connection = new \OpenCloud\Rackspace(AUTHURL, 
       array('username' => USERNAME, 'apiKey' => APIKEY)); 

// connect to ObjectStore 
$object_store = $connection->ObjectStore(); 

// create a container named CONTAINER_NAME 
$cont = $ostore->Container(); 
$cont->Create(array('name'=>CONTAINER_NAME)); 

// create an object in that container 
$obj = $cont->DataObject(); 
$obj->Create(array('name' => 'test_obj', 'content_type' => 'text/plain'), __FILE__); 

// copy it to another object 
$target = $cont->DataObject(); 
$target->name = $obj->Name().'-COPY'; 
$obj->Copy($target); 

如果您無法升級到使用PHP-opencloud庫,它看起來像另一個用戶有一個類似的問題here並追蹤到一個雙重編碼的斜線。