PUT Object - Copy
API Description
You can use this API to create a copy for an object in a specified bucket.
Method Definition
1. ObsClient->copyObject(array $parameter) 2. ObsClient->copyObjectAsync(array $parameter, callable $callback)
Request Parameter
Field |
Type |
Optional or Mandatory |
Description |
---|---|---|---|
Bucket |
string |
Mandatory |
Target bucket name |
Key |
string |
Mandatory |
Target object name |
ACL |
string |
Optional |
Pre-defined access control policy specified during object copy |
StorageClass |
string |
Optional |
Storage class of the object. Possible values are: |
CopySource |
string |
Mandatory |
Parameter used to specify the source bucket, source object, and source object version ID which can be null. It is in the format of SourceBucketName/SourceObjectName?versionId=SourceObjectVersionId. |
CopySourceIfMatch |
string |
Optional |
Copies the source object if its ETag is the same as the one specified by this parameter; otherwise, an exception is thrown. |
CopySourceIfModifiedSince |
string or \DateTime |
Optional |
Copies the source object if it is changed after the time specified by this parameter; otherwise, an exception is thrown. If this parameter value is a character string, it must conform to the HTTP time format specified in http://www.ietf.org/rfc/rfc2616.txt. |
CopySourceIfNoneMatch |
string |
Optional |
Copies the source object if its ETag is different from the one specified by this parameter; otherwise, an exception is thrown. |
CopySourceIfUnmodifiedSince |
string or \DateTime |
Optional |
Copies the source object if it is changed before the time specified by this parameter; otherwise, an exception is thrown. If this parameter value is a character string, it must conform to the HTTP time format specified in http://www.ietf.org/rfc/rfc2616.txt. |
CacheControl |
string |
Optional |
Rewrites the Cache-Control header in the response. |
ContentDisposition |
string |
Optional |
Rewrites the Content-Disposition header in the response. |
ContentEncoding |
string |
Optional |
Rewrites the Content-Encoding header in the response. |
ContentLanguage |
string |
Optional |
Rewrites the Content-Language header in the response. |
ContentType |
string |
Optional |
Rewrites the Content-Type header in the response. |
Expires |
string |
Optional |
Rewrites the Expires header in the response. |
MetadataDirective |
string |
Optional |
|
Metadata |
associative array |
Optional |
Customized metadata of the target object |
WebsiteRedirectLocation |
string |
Optional |
Location where the object is redirected to, when the bucket is configured with website hosting. |
SseKms |
string |
Optional |
Algorithm used to encrypt the target object in SSE-KMS mode. The value can be:
|
SseKmsKey |
string |
Optional |
Master key used to encrypt the target object in SSE-KMS mode. The value can be null. |
SseC |
string |
Optional |
Algorithm used to encrypt the target object in SSE-C mode. The value can be:
|
SseCKey |
string |
Optional |
Key used to encrypt the target object in SSE-C mode, which is calculated by using AES-256 |
CopySourceSseC |
string |
Optional |
Algorithm used to decrypt the source object in SSE-C mode. The value can be:
|
CopySourceSseCKey |
string |
Optional |
Key used to decrypt the source object in SSE-C mode, which is calculated by using AES-256 |
- If the object copy request includes CopySourceIfUnmodifiedSince, CopySourceIfMatch, CopySourceIfModifiedSince, or CopySourceIfNoneMatch, and the specified condition is not met, an exception will be thrown with HTTP status code 412 Precondition Failed returned.
- CopySourceIfModifiedSince and CopySourceIfNoneMatch can be used together. So do CopySourceIfUnmodifiedSince and CopySourceIfMatch.
Returned Result
Field |
Type |
Description |
---|---|---|
HttpStatusCode |
integer |
HTTP status code |
Reason |
string |
Reason description |
RequestId |
string |
Request ID returned by the OBS server |
ETag |
string |
ETag of the target object |
LastModified |
string |
Time when the last modification was made to the object |
VersionId |
string |
Version ID of the target object. This field is null if versioning is not enabled for the target bucket. |
CopySourceVersionId |
string |
Version ID of the source object. This field is null if versioning is not enabled for the source bucket. |
SseKms |
string |
Algorithm used in SSE-KMS encryption |
SseKmsKey |
string |
Master key used in SSE-KMS encryption |
SseC |
string |
Algorithm used in SSE-C encryption |
SseCKeyMd5 |
string |
MD5 value of the key used in SSE-C encryption |
Sample Code
try{ $resp = $obsClient -> copyObject([ 'Bucket' => 'bucketname', 'Key' => 'objectkey', 'CopySource' => 'srcbucketname/srcobjectkey', 'Metadata' => ['meta1' => 'value1'] ]); printf("RequestId:%s\n", $resp['RequestId']); printf("ETag:%s\n", $resp['ETag']); printf("VersionId:%s\n", $resp['VersionId']); printf("CopySourceVersionId:%s\n", $resp['CopySourceVersionId']); printf("LastModified:%s\n", $resp['LastModified']); }catch (Obs\Common\ObsException $obsException){ printf("ExceptionCode:%s\n", $obsException->getExceptionCode()); printf("ExceptionMessage:%s\n", $obsException->getExceptionMessage()); }
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot