OSS\OssClient::copyObject PHP Method

copyObject() public method

拷贝一个在OSS上已经存在的object成另外一个object
public copyObject ( string $fromBucket, string $fromObject, string $toBucket, string $toObject, array $options = NULL ) : null
$fromBucket string 源bucket名称
$fromObject string 源object名称
$toBucket string 目标bucket名称
$toObject string 目标object名称
$options array
return null
    public function copyObject($fromBucket, $fromObject, $toBucket, $toObject, $options = NULL)
    {
        $this->precheckCommon($fromBucket, $fromObject, $options);
        $this->precheckCommon($toBucket, $toObject, $options);
        $options[self::OSS_BUCKET] = $toBucket;
        $options[self::OSS_METHOD] = self::OSS_HTTP_PUT;
        $options[self::OSS_OBJECT] = $toObject;
        if (isset($options[self::OSS_HEADERS])) {
            $options[self::OSS_HEADERS][self::OSS_OBJECT_COPY_SOURCE] = '/' . $fromBucket . '/' . $fromObject;
        } else {
            $options[self::OSS_HEADERS] = array(self::OSS_OBJECT_COPY_SOURCE => '/' . $fromBucket . '/' . $fromObject);
        }
        $response = $this->auth($options);
        $result = new PutSetDeleteResult($response);
        return $result->getData();
    }

Usage Example

 /**
  * Copy a file.
  *
  * @param string $path
  * @param string $newpath
  * @return bool
  */
 public function copy($path, $newpath)
 {
     $object = $this->applyPathPrefix($path);
     $newobject = $this->applyPathPrefix($newpath);
     try {
         $this->client->copyObject($this->bucket, $object, $this->bucket, $newobject);
     } catch (OssException $e) {
         return false;
     }
     return true;
 }
All Usage Examples Of OSS\OssClient::copyObject