2013-10-12 2 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

Похоже, вы используете SDK из php-cloudfiles. Функция copy_object_to может быть найдена на github here.

Эта библиотека устарела в пользу php-opencloud. Документация может быть найдена here

Новая функция, используемая при копировании объекта DataObject :: Copy и может быть найдена here.

программирования логики, чтобы сделать копию объекта Cloud Files с 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 и отследили его до косой чертой с двойным кодированием.