최신 업데이트:2025-08-25 16:19:37
이 API는 객체 스토리지에 이미 존재하는 객체의 복사본을 생성하는 데 사용됩니다. 이 작업을 수행하려면 wos:PutObject 권한이 필요합니다.
x-wos-copy-source를 추가하면, PUT 방식으로 객체를 대상 버킷에 복사할 수 있습니다.x-wos-copy-source-if-match, x-wos-copy-source-if-none-match, x-wos-copy-source-if-unmodified-since, x-wos-copy-source-if-modified-since 등의 요청 헤더를 사용하세요.PUT /destinationObjectName HTTP/1.1
Host: Bucket.Endpoint
x-wos-copy-source: /sourceBucket/sourceObject
x-wos-copy-source-if-match: etag
x-wos-copy-source-if-none-match: etag
x-wos-copy-source-if-unmodified-since: time_stamp
x-wos-meta-*:metainfo
Authorization: Authorization string
Date: date
없음
Common Request Headers 외에 아래 헤더를 사용할 수 있습니다:
| 헤더 | 설명 | 필수 여부 |
|---|---|---|
| x-wos-copy-source | 소스 버킷 및 소스 객체명을 지정합니다. 이 헤더는 URL 인코딩되어야 합니다. 타입: String 예시: x-wos-copy-source:/src_bucket/src_object |
예 |
| x-wos-copy-source-if-match | 지정 etag 값과 일치할 때만 복사 작업을 수행합니다. 일치하지 않으면 412(Precondition Failed) 반환. 타입: String 타입:x-wos-copy-source-if-match: etag 이 파라미터는 x-wos-copy-source-if-unmodified/modified-since를 제외하고 다른 파라미터와 함께 사용할 수 없습니다. |
아니오 |
| x-wos-copy-source-if-none-match | 지정 etag 값과 일치하지 않을 때만 복사 작업을 수행합니다. 일치하면 412(Precondition Failed) 반환. 타입: String 타입: x-wos-copy-source-if-none-match: etag |
아니오 |
| x-wos-copy-source-if-unmodified-since | 이 시간이후로 소스 객체가 수정되지 않았을 경우에만 복사 작업을 수행합니다. 그렇지 않으면 412(Precondition Failed) 반환. 타입: HTTP 시간 문자열 형식 타입:x-wos-copy-source-if-unmodified -since: timestamp |
아니오 |
| x-wos-copy-source-if-modified-since | 지정된 시간 이후에 소스 객체가 수정된 경우에만 복사 작업을 수행합니다. 그렇지 않으면 412(Precondition Failed) 반환. 타입: HTTP 시간 문자열 형식 타입:x-wos-copy-source-if-modified -since: timestamp |
아니오 |
| x-wos-metadata-directive | x-wos-meta-*에 지정한 메타데이터로 대상 객체의 메타데이터를 대체(REPLACE)할지, 원본의 메타데이터를 복사만(COPY)할지 지정합니다.타입: String 예시: x-wos-metadata-directive: COPY |
아니오 |
| x-wos-meta-* | 사용자 정의 메타데이터입니다. headObject 및 getObjectType의 응답 헤더로 반환됩니다. 타입: String 예시: x-wos-metadata-abc: test |
아니오 |
없음
HTTP/1.1 status_code
x-wos-request-id: request id
Content-Type: type
Date: date
Content-Length: length
Server: WS-web-server
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyObjectResult xmlns=" http://wcs.chinanetcenter.com/document">
<LastModified>modifiedDate</LastModified>
<ETag>etagValue</ETag>
</CopyObjectResult>
Common Response Headers 를 사용하세요.
| 이름 | 설명 |
|---|---|
| CopyObjectResult | 복사 결과 컨테이너. 타입: XML |
| LastModified | 객체가 마지막으로 수정된 시간. 타입: String |
| ETag | 새 객체의 ETag 값. 타입: String |
특별 오류
| 상황 | HTTP 상태 | 오류 코드 | 메시지 |
|---|---|---|---|
| 포맷 오류, 복사할 객체가 누락된 경우 | 400 Bad Request | InvalidArgument | Copy Source must mention the source bucket and key: sourcebucket/sourcekey |
| 복사 대상 객체가 5GB 초과 | 400 Bad Request | EntityTooLarge | Your proposed copy exceeds the maximum allowed object size. |
| 소스 객체와 대상 객체가 동일하며 메타데이터 변경없이 복사 | 400 Bad Request | InvalidRequest | This copy request is illegal because it is trying to copy an object to itself without changing the object’s metadata attribute. |
PUT /destobject HTTP/1.1
Host: bucket.s3-cn-east-1.wcsapi.com
Date: Sat, 03 Dec 2011 08:48:07 +0000
Authorization: WOS BF6C09F302931425E9A7:2rZR+iaH8xUewvUKuicLhLHpNoU=
x-wos-copy-source: /srcbucket/srcobject
HTTP/1.1 200 OK
x-wos-request-id: 318BC8BC148832E5
Date: Wed, 28 Oct 2009 22:32:00 GMT
Connection: close
Server: WS-Web-Server
<CopyObjectResult>
<LastModified>2009-10-28T22:32:00</LastModified>
<ETag>"9b2cf535f27731c974343645a3985328"</ETag>
</CopyObjectResult>