3.6.6. Swift에서 오브젝트 복사

오브젝트를 복사하면 오브젝트의 서버 측 복사본을 만들 수 있으므로 이를 다운로드하여 다른 컨테이너로 업로드할 필요가 없습니다. 한 오브젝트의 콘텐츠를 다른 오브젝트에 복사하려면 PUT 요청 또는 COPY 요청을 API 버전, 계정, 컨테이너 이름으로 만들 수 있습니다.

PUT 요청의 경우 요청에 대상 컨테이너 및 오브젝트 이름을 사용하고 요청 헤더에 소스 컨테이너와 오브젝트를 사용합니다.

복사 요청의 경우 요청에서 소스 컨테이너와 오브젝트를 사용하고 요청 헤더에서 대상 컨테이너와 오브젝트를 사용합니다. 컨테이너에 오브젝트를 복사하려면 쓰기 권한이 있어야 합니다. 대상 오브젝트 이름은 컨테이너 내에서 고유해야 합니다. 요청은 멱등이 아니므로 고유한 이름을 사용하지 않는 경우 요청은 대상 오브젝트를 업데이트합니다. 오브젝트 이름에 pseudo-hierarchical 구문을 사용하여 대상 오브젝트를 다른 pseudo-hierarchical 디렉터리에 있는 경우 동일한 이름의 소스 오브젝트와 구분할 수 있습니다. 요청에 액세스 제어 헤더 및 메타데이터 헤더를 포함할 수 있습니다.

구문

PUT /AP_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

또는 다음을 수행합니다.

구문

COPY /AP_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT

표 3.14. 요청 헤더

이름설명유형필수 항목

X-Copy-From

PUT 요청과 함께 사용하여 소스 컨테이너/오브젝트 경로를 정의합니다.

문자열

예, PUT를 사용하는 경우

대상

대상 컨테이너/오브젝트 경로를 정의하는 COPY 요청과 함께 사용됩니다.

문자열

예, COPY를 사용하는 경우

if-Modified-Since

소스 오브젝트의 last_modified 속성의 날짜/시간 이후 변경된 경우에만 복사합니다.

날짜

없음

if-Unmodified-Since

소스 오브젝트의 last_modified 속성의 날짜/시간 이후 수정되지 않은 경우에만 복사합니다.

날짜

없음

copy-If-Match

요청에 있는 ETag가 소스 오브젝트의 ETag와 일치하는 경우에만 복사합니다.

etag.

없음

copy-If-None-Match

요청에 있는 ETag가 소스 오브젝트의 ETag와 일치하지 않는 경우에만 복사합니다.

etag.

없음