x-cos-copy-source
to specify the source object and use x-cos-copy-source-range
to specify the byte range to copy (each part should be 1 MB to 5 GB).GetObjecet
API permission of the source object and the InitiateMultipartUpload
, ListMultipartUploads
, ListParts
, PutObject
, CompleteMultipartUpload
, and AbortMultipartUpload
API permissions under the destination path.uploadId
, which needs to be carried in the multipart upload request.x-cos-copy-source
identifies the current version of the object to copy. If the current version is a delete marker and no version is specified in x-cos-copy-source
, COS will consider that the object has been deleted and return a 404 error. If you specify a versionId
in x-cos-copy-source
and the versionId
is a delete marker, COS will return an HTTP 400 error as delete markers cannot be set in x-cos-copy-source
.PUT /<ObjectKey>?partNumber=PartNumber&uploadId=UploadId HTTP/1.1Host: <Bucketname-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth Stringx-cos-copy-source: <Bucketname>-<APPID>.cos.<Region>.myqcloud.com/filepathx-cos-copy-source-range: bytes=first-lastx-cos-copy-source-if-match: etagx-cos-copy-source-if-none-match : etagx-cos-copy-source-if-unmodified-since: time_stampx-cos-copy-source-if-modified-since: time_stamp
examplebucket-1250000000
(see Bucket Overview > Basic Information and Bucket Overview > Bucket Naming Conventions), and <Region> is a COS region (see Regions and Access Endpoints).Header | Description | Type | Required |
x-cos-copy-source | URL of the source object. You can use versionid to specify the versionId of the object. | String | Yes |
Header | Description | Type | Required |
x-cos-copy-source-range | Byte range of the source object. The range value must be in the format of bytes=first-last , where both first and last are offsets starting from 0. For example, bytes=0-9 means that you want to copy the first 10 bytes of data of the source object. If this parameter is not specified, the entire object will be copied. | String | No |
x-cos-copy-source-If-Modified-Since | If the object is modified after the specified time, the operation will be performed; otherwise, 412 will be returned. This parameter can be used together with x-cos-copy-source-If-None-Match . If it is used together with other conditions, a conflict will be returned. | String | No |
x-cos-copy-source-If-Unmodified-Since | If the object is not modified after the specified time, the operation will be performed; otherwise, 412 will be returned. This parameter can be used together with x-cos-copy-source-If-Match . If it is used together with other conditions, a conflict will be returned. | String | No |
x-cos-copy-source-If-Match | If the ETag of the object is the same as the specified one, the operation will be performed; otherwise, 412 will be returned. This parameter can be used together with x-cos-copy-source-If-Unmodified-Since . If it is used together with other conditions, a conflict will be returned. | String | No |
x-cos-copy-source-If-None-Match | If the ETag of the object is different from the specified one, the operation will be performed; otherwise, 412 will be returned. This parameter can be used together with x-cos-copy-source-If-Modified-Since . If it is used together with other conditions, a conflict will be returned. | string | No |
Parameter | Description | Type | Required |
partNumber | Part number | String | Yes |
uploadId | To upload an object in parts, you must first initialize the multipart upload. The response of the multipart upload initialization will carry a unique descriptor ( uploadId ), which needs to be carried in the multipart upload request. | String | Yes |
Header | Description | Type |
x-cos-copy-source-version-id | Version ID of the source object to copy (if versioning is enabled for the source bucket) | String |
x-cos-server-side-encryption | If the object is stored with COS-managed server-side encryption, the response will contain this header and the encryption algorithm used (AES256). | String |
<?xml version="1.0" encoding="UTF-8" ?><CopyPartResult><ETag>"ba82b57cfdfda8bd17ad4e5879ebb4fe"</ETag><LastModified>2017-09-04T04:45:45</LastModified></CopyPartResult>
Parameter | Description | Type |
CopyPartResult | Results of the copy | String |
ETag | MD5 checksum of the object. ETag can be used to check whether the object content has changed. | String |
LastModified | Last modified time of the object, in GMT format | String |
PUT /exampleobject?partNumber=1&uploadId=1505706248ca8373f8a5cd52cb129f4bcf85e11dc8833df34f4f5bcc456c99c42cd1ffa2f9 HTTP/1.1User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2Accept: */*x-cos-copy-source:examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/exampleobject1x-cos-copy-source-range: bytes=10-100Host: examplebucket-1250000000.cos.ap-shanghai.myqcloud.comAuthorization:q-sign-algorithm=sha1&q-ak=AKIDDNMEycgLRPI2axw9xa2Hhx87wZ3M****&q-sign-time=1507530223;1508530223&q-key-time=1507530223;1508530223&q-header-list=&q-url-param-list=&q-signature=d02640c0821c49293e5c289fa07290e6b2f0****
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 133Connection: keep-aliveDate: Mon, 04 Sep 2017 04:45:45 GMTServer: tencent-cosx-cos-request-id: NTlkYjFjYWJfMjQ4OGY3MGFfNGIz****<CopyPartResult><ETag>"ba82b57cfdfda8bd17ad4e5879ebb4fe"</ETag><LastModified>2017-09-04T04:45:45</LastModified></CopyPartResult>
문제 해결에 도움이 되었나요?