4.5.5. Swift에서 오브젝트 복사
오브젝트를 복사하면 오브젝트의 서버 측 복사본을 만들 수 있으므로 다른 컨테이너에서 다운로드하여 업로드할 필요가 없습니다. 한 오브젝트의 콘텐츠를 다른 오브젝트로 복사하려면 API 버전, 계정 및 컨테이너 이름을 사용하여 PUT 요청 또는 COPY 요청을 수행할 수 있습니다.
PUT 요청의 경우 요청에 있는 대상 컨테이너 및 오브젝트 이름과 요청 헤더의 소스 컨테이너 및 오브젝트를 사용합니다.
복사 요청의 경우 요청에서 소스 컨테이너 및 오브젝트와 요청 헤더에 있는 대상 컨테이너 및 오브젝트를 사용합니다. 오브젝트를 복사하려면 컨테이너에 대한 쓰기 권한이 있어야 합니다. 대상 오브젝트 이름은 컨테이너 내에서 고유해야 합니다. 요청은 멱등이 아니므로 고유한 이름을 사용하지 않으면 요청이 대상 오브젝트를 업데이트합니다. 오브젝트 이름에 pseudo-hierarchical 구문을 사용하여 대상 오브젝트가 다른 pseudo-hierarchical 디렉터리 아래에 있는 경우 동일한 이름의 소스 오브젝트와 구별할 수 있습니다. 요청에 액세스 제어 헤더 및 메타데이터 헤더를 포함할 수 있습니다.
구문
PUT /API_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 /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT
요청 헤더
X-Copy-From- 설명
-
PUT요청과 함께 소스 컨테이너/오브젝트 경로를 정의합니다. - 유형
- 문자열
- 필수 항목
-
예,
PUT을 사용하는 경우입니다.
대상- 설명
-
COPY요청과 함께 사용하여 대상 컨테이너/오브젝트 경로를 정의합니다. - 유형
- 문자열
- 필수 항목
-
예,
COPY를 사용하는 경우 .
if- Cryostat-Since- 설명
-
소스 오브젝트의
last_modified속성의 날짜 및 시간 이후 수정된 경우에만 복사합니다. - 유형
- 날짜
- 필수 항목
- 없음
if-Unmodified-Since- 설명
-
소스 오브젝트의
last_modified속성의 날짜와 시간 이후 수정되지 않은 경우에만 복사합니다. - 유형
- 날짜
- 필수 항목
- 없음
copy-If-Match- 설명
- 요청의 ETag가 소스 오브젝트의 ETag와 일치하는 경우에만 복사합니다.
- 유형
- etag
- 필수 항목
- 없음
copy-If-None-Match- 설명
-
요청의
ETag가 소스 오브젝트의 ETag와 일치하지 않는 경우에만 복사합니다. - 유형
- etag
- 필수 항목
- 없음