PUT Object - Copy
API Description
You can use this API to create a copy for an object in a specified bucket.
Method Definition
ObsClient.copyObject
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 error code is returned. |
| CopySourceIfModifiedSince | String | Optional | Copies the source object if it is changed after the time specified by this parameter; otherwise, an error code is returned. This parameter must conform with 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 error code is returned. |
| CopySourceIfUnmodifiedSince | String | Optional | Copies the source object if it is changed before the time specified by this parameter; otherwise, an error code is returned. This parameter must conform with the HTTP time format specified in http://www.ietf.org/rfc/rfc2616.txt. |
| CacheControl | String | Optional | When an object is copied, this parameter rewrites the Cache-Control header in the response. |
| ContentDisposition | String | Optional | When an object is copied, this parameter rewrites the Content-Disposition header in the response. |
| ContentEncoding | String | Optional | When an object is copied, this parameter rewrites the Content-Encoding header in the response. |
| ContentLanguage | String | Optional | When an object is copied, this parameter rewrites the Content-Language header in the response. |
| ContentType | String | Optional | When an object is copied, this parameter rewrites the Content-Type header in the response. |
| Expires | String | Optional | When an object is copied, this parameter rewrites the Expires header in the response. |
| MetadataDirective | String | Optional | |
| Metadata | Object | 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 |
| SuccessActionRedirect | String | Optional | Redirection address after the copy is successful |
| SseKms | String | Optional | Algorithm used to encrypt a target object in SSE-KMS mode. The value can be:
|
| SseKmsKey | String | Optional | Master key used to encrypt a target object in SSE-KMS encryption, which can be left null |
| SseC | String | Optional | Algorithm used to encrypt a target object in SSE-C mode. The value can be:
|
| SseCKey | Buffer | Optional | Key used to encrypt a target object in SSE-C mode, which is calculated by using the AES256 algorithm. |
| CopySourceSseC | String | Optional | Algorithm used to decrypt a source object in SSE-C mode. The value can be:
|
| CopySourceSseCKey | Buffer | Optional | Key used to decrypt a source object in SSE-C mode, which is calculated by using the AES256 algorithm. |
- If CopySourceIfUnmodifiedSince, CopySourceIfMatch, CopySourceIfModifiedSince, or CopySourceIfNoneMatch is included and its specified condition is not met, 412 Precondition Failed will be returned.
- CopySourceIfModifiedSince and CopySourceIfNoneMatch can be used together. So do CopySourceIfUnmodifiedSince and CopySourceIfMatch.
Returned Result (InterfaceResult)
| Field | Type | 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 target 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
obsClient.copyObject({
Bucket:'bucketname',
Key:'objectkey',
CopySource:'srcbucketname/srcobjectkey',
Metadata:{meta1:'value1'}
},(err, result) => {
if(err){
console.error('Error-->' + err);
}else{
if(result.CommonMsg.Status < 300){
console.log('RequestId-->' + result.InterfaceResult.RequestId);
console.log('ETag-->' + result.InterfaceResult.ETag);
console.log('VersionId-->' + result.InterfaceResult.VersionId);
console.log('CopySourceVersionId-->' + result.InterfaceResult.CopySourceVersionId);
console.log('LastModified-->' + result.InterfaceResult.LastModified);
}else{
console.log('Code-->' + result.CommonMsg.Code);
console.log('Message-->' + result.CommonMsg.Message);
}
}
}); Last Article: GET Object
Next Article: DELETE Object
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.