Blob 증분 복사

작업은 Incremental Copy Blob 원본 페이지 Blob의 스냅샷 대상 페이지 Blob에 복사합니다. 이전에 복사한 스냅샷 차이점만 대상으로 전송됩니다. 복사된 스냅샷은 원래 스냅샷 전체 복사본이며, 평소처럼 읽거나 복사할 수 있습니다. 이 API는 REST 버전 2016-05-31 이후 지원됩니다.

요청

다음과 같이 요청을 생성할 Incremental Copy Blob 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 스토리지 계정의 이름으로 바꾸고, mycontainer를 컨테이너 이름으로, myblob을 대상 Blob의 이름으로 바꿉니다. compincrementalcopy이 인 쿼리 매개 변수는 이 요청이 증분 스냅샷 만들기 위한 것임을 나타냅니다.

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

에뮬레이트된 스토리지 서비스 URI

에뮬레이트된 스토리지 서비스에 대해 요청할 때 에뮬레이터 호스트 이름 및 Azure Blob Storage 서비스 포트를 127.0.0.1:10000으로 지정한 다음 에뮬레이트된 스토리지 계정 이름을 지정합니다. 또한 쿼리 매개 변수incrementalcopy를 로 설정하여 이 요청이 증분 복사용 comp 임을 나타냅니다.

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

자세한 내용은 로컬 Azure Storage 개발에 Azurite 에뮬레이터 사용을 참조하세요.

URI 매개 변수

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

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

요청 헤더

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

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

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

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

지정된 조건이 충족되지 않으면 Blob Storage는 코드 412(사전 조건 실패)상태 반환합니다.
x-ms-copy-source:name 필수 사항입니다. 원본 페이지 Blob 스냅샷 이름을 지정합니다.

이 값은 페이지 Blob 스냅샷 지정하는 최대 2키비바이트(KiB)의 URL입니다. 값은 요청 URI에 표시되므로 URL 인코딩해야 합니다. 원본 Blob URI는 다음 두 가지 방법 중 하나로 권한을 부여할 수 있습니다.

원본 Blob URI는 페이지 Blob 스냅샷 참조할 수 있지만 스냅샷 기본 Blob에 만들어진 SAS(공유 액세스 서명) 토큰을 포함해야 합니다. SAS의 서명된 리소스(sr) 필드를 로 b설정해야 합니다. 예: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature>

원본 Blob URI는 공용 페이지 Blob 스냅샷 참조할 수 있습니다(예: https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>).
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1-KiB 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage 모니터링을 참조하세요.

요청 본문

없음

응답

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

상태 코드

작업에 성공하면 상태 코드 202(수락됨)가 반환됩니다. 상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

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

구문 Description
ETag 조건부로 작업을 수행하는 데 사용할 수 있는 값을 포함합니다. 값은 따옴표로 입니다.
Last-Modified Blob이 마지막으로 수정된 날짜 및 시간입니다. 자세한 내용은 헤더의 날짜/시간 값 표현을 참조하세요.

Blob에 대한 쓰기 작업(Blob의 메타데이터 또는 속성에 대한 업데이트 포함)은 Blob의 마지막 수정 시간을 변경합니다.
x-ms-request-id 만들어진 요청을 고유하게 식별하며 요청 문제 해결에 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용되는 Blob Storage의 버전을 나타냅니다.
Date 응답이 시작된 시간을 나타내는 UTC 날짜/시간 값입니다. 서비스는 이 값을 생성합니다.
x-ms-copy-id: <id> 이 복사 작업의 문자열 식별자입니다. 을 Get Blob Properties 사용하여 이 복사 작업의 상태 검사 또는 를 전달 Abort Copy Blob 하여 보류 중인 복사본을 중지합니다.
x-ms-copy-status: pending 복사 작업의 상태입니다. 복사본이 시작되고 진행 중임을 나타내기 위해 항상 보류 중입니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더 값 x-ms-client-request-id 과 같습니다. 이 값은 최대 1,024자 표시 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> 

권한 부여

Azure Storage에서 데이터 액세스 작업을 호출할 때 권한 부여가 필요합니다. 다음 섹션에서는 작업의 대상 개체Incremental Copy Blob 에 권한을 부여하는 방법을 설명합니다. 요청 헤더에 대한 세부 정보에 설명된 대로 원본 Blob 또는 파일에 대한 x-ms-copy-source 액세스 권한은 별도로 부여됩니다.

Azure Storage는 Microsoft Entra ID 사용하여 Blob 데이터에 대한 요청에 권한을 부여할 수 있도록 지원합니다. Microsoft Entra ID 사용하면 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 관리 ID일 수 있습니다. 보안 주체는 Microsoft Entra ID 인증되어 OAuth 2.0 토큰을 반환합니다. 그런 다음 토큰을 사용하여 Blob service에 대한 요청을 승인할 수 있습니다.

Microsoft Entra ID 사용하여 권한 부여에 대한 자세한 내용은 Microsoft Entra ID 사용하여 Blob에 대한 액세스 권한 부여를 참조하세요.

사용 권한

아래에는 Microsoft Entra 사용자, 그룹 또는 서비스 주체가 작업을 호출 Incremental Copy Blob 하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.

Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터에 액세스하기 위해 Azure 역할 할당을 참조하세요.

설명

증분 복사본의 대상이 없거나 동일한 원본 Blob의 이전 증분 복사본을 사용하여 만들어야 합니다. 만든 후 대상 Blob은 원본과 영구적으로 연결되며 증분 복사본에만 사용할 수 있습니다. 및 List Blobs API는 Get Blob Properties Blob이 이러한 방식으로 생성된 증분 복사 Blob인지 여부를 나타냅니다.

증분 복사 Blob은 직접 다운로드할 수 없습니다. 유일하게 지원되는 작업은 , Incremental Copy BlobDelete Blob입니다Get Blob Properties. 복사한 스냅샷을 평소와 같이 읽고 삭제할 수 있습니다.

서비스에서 비동기적으로 증분 복사를 수행하고 완료를 폴링해야 합니다. 보류 중인 복사본을 Copy Blob 폴링하는 방법에 대한 자세한 내용은 API를 참조하세요. 복사가 완료되면 대상 Blob에 새 스냅샷 포함됩니다. API는 Get Blob Properties 새로 만든 스냅샷 스냅샷 시간을 반환합니다.

대상 Blob에서 증분 복사를 처음 수행할 때 원본에서 완전히 복사된 스냅샷 사용하여 새 Blob이 만들어집니다. 에 대한 Incremental Copy Blob 각 후속 호출은 이전에 복사한 스냅샷 차등 변경 내용만 복사하여 새 스냅샷 만듭니다.

차등 변경 내용은 원본 Blob 스냅샷 호출을 실행하여 Get Page Ranges 서버에서 계산됩니다. 가장 최근에 복사한 스냅샷 설정합니다prevsnapshot. 따라서 에 대한 동일한 제한이 에 Get Page Ranges 적용됩니다 Incremental Copy Blob. 특히 스냅샷을 오름차순으로 복사해야 하며, 또는 Copy BlobIncremental Copy Blob 을 사용하여 Put Blob 원본 Blob을 다시 만들면 새 스냅샷에서 실패합니다.

복사된 스냅샷 사용하는 추가 스토리지 공간은 복사 중에 전송되는 차등 데이터의 크기입니다. 스냅샷 차등 Get Page Ranges API 호출을 수행하여 이전 스냅샷 비교하여 이 크기를 확인할 수 있습니다.

추가 정보

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