Blob 증분 복사

Incremental Copy Blob작업은 원본 페이지 blob의 스냅숏을 대상 페이지 blob에 복사 합니다. 스냅숏을 복사 하 여 이전에 복사한 스냅숏 간의 차등 변경 내용만 대상에 전송 됩니다. 복사 된 스냅숏은 원래 스냅숏의 전체 복사본 이며 평소와 같이 읽거나 복사할 수 있습니다. 이 API는 REST 버전 2016-05-31부터 지원 됩니다.

요청

다음과 같이 Incremental Copy Blob 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. Myaccount을 사용자의 저장소 계정 이름으로, mycontainer를 컨테이너 이름으로, mycontainer을 대상 blob의 이름으로 바꿉니다. Incrementalcopy 값이 포함 된 comp 쿼리 매개 변수는이 요청이 증분 스냅숏을 만들도록 지정 합니다.

PUT 메서드 요청 URI HTTP 버전
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

에뮬레이트된 저장소 서비스 URI

에뮬레이트된 저장소 서비스에 대해 요청을 수행 하는 경우 에뮬레이터 호스트 이름 및 Blob service 포트를 127.0.0.1:10000으로 지정 하 고 그 뒤에 에뮬레이트된 저장소 계정 이름을 지정 합니다. 또한 comp 쿼리 매개 변수를 incrementalcopy 값으로 설정 하 여이 요청이 증분 복사 임을 표시 합니다.

PUT 메서드 요청 URI HTTP 버전
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

자세한 내용은 개발 및 테스트에 Azure Storage 에뮬레이터 사용을 참조 하세요.

URI 매개 변수

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.

매개 변수 설명
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob 서비스 작업에 대 한 시간 제한 설정을 참조 하세요.

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 설명
Authorization 필수 요소. 인증 체계, 계정 이름 및 서명을 지정 합니다. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.
Date 또는 x-ms-date 필수 요소. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.
x-ms-version 모든 권한이 부여 된 요청에 필요 합니다. 익명 요청의 경우 선택 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage Services에 대 한 버전 관리를 참조 하세요.
If-Modified-Since 선택 사항입니다. DateTime 값입니다. 지정된 날짜/시간 이후 대상 blob가 수정된 경우에만 blob를 복사하려면 이 조건부 헤더를 지정합니다. 대상 blob이 수정되지 않은 경우 Blob service가 상태 코드 412(전제 조건 실패)를 반환합니다.
If-Unmodified-Since 선택 사항입니다. DateTime 값입니다. 지정된 날짜/시간 이후 대상 blob가 수정되지 않은 경우에만 blob를 복사하려면 이 조건부 헤더를 지정합니다. 대상 blob가 수정된 경우 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다.
If-Match 선택 사항입니다. ETag 값입니다. 지정 된 ETag 값이 기존 대상 blob의 ETag 값과 일치 하는 경우에만 blob를 복사 하려면이 조건부 헤더에 대 한 ETag 값을 지정 합니다. 대상 blob의 ETag가 일치 하는 경우에 지정 된 ETag와 일치 하지 않는 경우 Blob service는 상태 코드 412 (전제 조건 실패)를 반환 합니다.
If-None-Match 선택 사항입니다. ETag 값 또는 와일드 카드 문자 ( * )입니다.

지정된 ETag 값이 대상 blob의 ETag 값과 일치하지 않는 경우에만 blob를 복사하려면 이 조건부 헤더에 대한 ETag 값을 지정합니다.

*대상 blob이 없는 경우에만 작업을 수행 하려면 와일드 카드 문자 ()를 지정 합니다.

지정된 조건이 충족되지 않으면 Blob 서비스가 상태 코드 412(전제 조건 실패)를 반환합니다.
x-ms-copy-source:name 필수 요소. 원본 페이지 blob 스냅숏의 이름을 지정 합니다.

이 값은 페이지 blob 스냅숏을 지정 하는 최대 2 KiB의 URL입니다. 값은 요청 URI에 표시되므로 URL 인코딩해야 합니다. 원본 blob는 공용 이거나 공유 액세스 서명을 통해 권한을 부여 받아야 합니다. 원본 blob URL의 예는 다음과 같습니다.

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
x-ms-client-request-id 선택 사항입니다. 저장소 분석 로깅을 사용 하도록 설정한 경우 분석 로그에 기록 되는 1 KiB 문자 제한이 있는 클라이언트 생성 불투명 값을 제공 합니다. 이 헤더를 사용하면 클라이언트 쪽 작업을 서버에서 받은 요청과 관련시키는 것이 좋습니다. 자세한 내용은 스토리지 분석 로깅 및 Azure 로깅: 로그를 사용 하 여 저장소 요청 추적을 참조 하세요.

요청 본문

없음

응답

응답에는 HTTP 상태 코드, 응답 헤더 집합이 포함 되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 202(수락됨)가 반환됩니다.

상태 코드에 대 한 자세한 내용은 상태 및 오류 코드를 참조 하세요.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을따릅니다.

구문 Description
ETag ETag에는 조건에 따라 작업을 수행하는 데 사용할 수 있는 값이 포함됩니다. 자세한 내용은 Blob 서비스 작업에 대 한 조건부 헤더 지정을 참조 하세요. ETag 값은 따옴표로 묶여 있습니다.
Last-Modified Blob을 마지막으로 수정한 날짜/시간입니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 헤더의 날짜/시간 값 표현을 참조 하십시오.

blob의 메타 데이터 또는 속성에 대한 업데이트를 포함하여 blob에 대해 쓰기 작업을 수행할 때마다 blob의 마지막 수정 시간이 변경됩니다.
x-ms-request-id 이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조 하세요.
x-ms-version 요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다.
Date 응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.
x-ms-copy-id: <id> 이 복사 작업의 문자열 식별자입니다. Blob 속성 가져오기를 사용 하 여이 복사 작업의 상태를 확인 하거나, Blob 복사 중단으로 이동 하 여 보류 중인 복사본을 중단 합니다.
x-ms-copy-status: pending 복사 작업의 상태입니다. 복사본이 시작 되었으며 진행 중임을 나타내기 위해 항상 보류 중입니다.
x-ms-client-request-id 이 헤더를 사용 하 여 요청 및 해당 응답의 문제를 해결할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더의 값과 같으며 x-ms-client-request-id , 값은 최대 1024 표시 ASCII 문자입니다. x-ms-client-request-id요청에 헤더가 없는 경우이 헤더는 응답에 표시 되지 않습니다.

응답 본문

없음

샘플 응답

다음은 증분 복사를 수행 하는 요청에 대 한 샘플 응답입니다.

Response Status:
HTTP/1.1 202 Accepted

Response Headers: 
Last-Modified: <date> 
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date> 

권한 부여

대상 계정 소유자 또는 대상 blob의 공유 액세스 서명을 사용 하 여이 작업을 호출할 수 있습니다.

원본 blob 또는 파일에 대 한 액세스 권한은 요청 헤더 x-m-복사에 대 한 세부 정보에 설명 된 대로 별도로 부여 됩니다.

설명

증분 복사본의 대상은 존재 하지 않거나 동일한 원본 blob의 이전 증분 복사를 사용 하 여 만들어야 합니다. 생성 된 대상 blob은 원본에 영구적으로 연결 되며 증분 복사본에만 사용할 수 있습니다. Blob 속성 및 목록 Blob 가져오기 Api는 blob이 이런 방식으로 생성 된 증분 복사 blob 인지 여부를 나타냅니다. 증분 복사 blob은 직접 다운로드할 수 없습니다. 유일 하 게 지원 되는 작업은 Blob 속성 가져오기, 증분 복사 Blob 및 Blob 삭제입니다. 복사 된 스냅숏은 평소와 같이 읽고 삭제할 수 있습니다.

증분 복사본은 서비스에서 비동기적으로 수행 되며 완료를 위해 폴링 되어야 합니다. 보류 중인 복사본을 폴링하는 방법에 대 한 자세한 내용은 Blob 복사 API를 참조 하세요. 복사가 완료 되 면 대상 blob에 새 스냅숏이 포함 됩니다. Blob 속성 가져오기 API는 새로 만든 스냅숏의 스냅숏 시간을 반환 합니다.

대상 blob에 대해 증분 복사를 처음 수행 하면 원본에서 완전히 복사 된 스냅숏을 사용 하 여 새 blob이 만들어집니다. 증분 복사 Blob에 대 한 각 후속 호출에서는 이전에 복사한 스냅숏의 차등 변경 내용만 복사 하 여 새 스냅숏을 만듭니다. Prevsnapshot가 가장 최근에 복사한 스냅숏으로 설정 된 원본 blob 스냅숏에 대해 페이지 범위 가져오기 호출을 실행 하 여 서버에서 차등 변경 내용이 계산 됩니다. 따라서 페이지 범위 가져오기에 대 한 동일한 제한이 증분 복사 Blob에 적용 됩니다. 특히 스냅숏은 오름차순으로 복사 해야 하며 원본 blob이 Put Blob 또는 Copy Blob을 사용 하 여 다시 만들어진 경우 새 스냅숏에 대 한 증분 복사 Blob이 실패 합니다.

복사 된 스냅숏에서 사용 되는 추가 저장소 공간은 복사 하는 동안 전송 되는 차등 데이터의 크기입니다. 이는 스냅숏에서 차등 가져오기 페이지 범위 API 호출을 수행 하 여이를 이전 스냅숏과 비교 하 여 확인할 수 있습니다.

참조

Azure Storage에 대 한 요청 권한 부여
상태 및 오류 코드
Blob 서비스 작업에 대한 제한 시간 설정