Ejemplo n.º 1
0
 /**
  * Copy an item in the storage service to a given path.
  *
  * WARNING: This operation is *very* expensive for services that do not
  * support copying an item natively.
  *
  * @TODO Support streams for those services that don't support natively
  *
  * @param  string $sourcePath
  * @param  string $destination path
  * @param  array $options
  * @return void
  */
 public function copyItem($sourcePath, $destinationPath, $options = array())
 {
     try {
         $fullSourcePath = $this->_getFullPath($sourcePath, $options);
         $fullDestPath = $this->_getFullPath($destinationPath, $options);
         return $this->_s3->copyObject($fullSourcePath, $fullDestPath, empty($options[self::METADATA]) ? null : $options[self::METADATA]);
     } catch (Zend_Service_Amazon_S3_Exception $e) {
         throw new Zend_Cloud_StorageService_Exception('Error on copy: ' . $e->getMessage(), $e->getCode(), $e);
     }
 }
Ejemplo n.º 2
0
 /**
  * @depends testCreateBucket
  * @depends testCreateObject
  */
 public function testCopyObject()
 {
     $this->_amazon->createBucket($this->_bucket);
     $data = "testdata";
     $this->_amazon->putObject($this->_bucket . "/zftest", $data);
     $info1 = $this->_amazon->getInfo($this->_bucket . "/zftest");
     $this->_amazon->copyObject($this->_bucket . "/zftest", $this->_bucket . "/zftest2");
     $this->assertTrue($this->_amazon->isObjectAvailable($this->_bucket . "/zftest"));
     $this->assertTrue($this->_amazon->isObjectAvailable($this->_bucket . "/zftest2"));
     $info2 = $this->_amazon->getInfo($this->_bucket . "/zftest2");
     $this->assertEquals($info1['etag'], $info2['etag']);
 }