이 Incremental Copy Blob 작업은 원본 페이지 Blob의 스냅샷을 대상 페이지 Blob에 복사합니다. 이전에 복사된 스냅샷과의 차이점만 대상으로 전송됩니다. 복사된 스냅샷은 원본 스냅샷의 전체 복사본이며, 평소와 같이 원본 스냅샷에서 읽거나 복사할 수 있습니다. 이 API는 REST 버전 2016-05-31 이후 지원됩니다.
요청
다음과 같이 Incremental Copy Blob 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다.
myaccount를 스토리지 계정의 이름으로, mycontainer를 컨테이너 이름으로, myblob을 대상 Blob의 이름으로 바꿉니다.
comp 값이 incrementalcopy인 쿼리 매개 변수는 이 요청이 증분 스냅샷을 만들기 위한 것임을 나타냅니다.
| 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에 다음 추가 매개 변수를 지정할 수 있습니다.
| 매개 변수 | 설명 |
|---|---|
timeout |
선택 사항입니다.
timeout 매개 변수는 초 단위로 표현됩니다. 자세한 내용은 Blob Storage 작업에 대한 시간 제한 설정을 참조하세요. |
요청 헤더
다음 표에서는 필수 및 선택적 요청 헤더에 대해 설명합니다.
| 요청 헤더 | 설명 |
|---|---|
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을 복사하려면 이 조건부 헤더의 값을 지정합니다. 대상 Blob에 대한 가 ETag 지정된 for 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 스냅샷을 지정하는 최대 2KiB(키비바이트) 길이의 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 |
선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1KiB 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage 모니터링을 참조하세요. |
요청 메시지 본문
없음.
응답
응답에는 HTTP 상태 코드와 응답 헤더 집합이 포함됩니다.
상태 코드
작업이 성공하면 상태 코드 202(수락됨)가 반환됩니다. 상태 코드에 대한 자세한 내용은 상태 및 오류 코드참조하세요.
응답 헤더
이 작업에 대한 응답에는 다음 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양준수합니다.
| 문법 | 설명 |
|---|---|
ETag |
조건부로 작업을 수행하는 데 사용할 수 있는 값을 포함합니다. 값은 따옴표로 묶여 있습니다. |
Last-Modified |
Blob이 마지막으로 수정된 날짜 및 시간입니다. 자세한 내용은 Representation of date/time values in headers(헤더의 날짜/시간 값 표현)를 참조하세요. Blob에 대한 모든 쓰기 작업(Blob의 메타데이터 또는 속성에 대한 업데이트 포함)은 Blob의 마지막 수정 시간을 변경합니다. |
x-ms-request-id |
요청의 문제를 해결하는 데 사용할 수 있고 만들어진 요청을 고유하게 식별합니다. 자세한 내용은 API 작업문제 해결을 참조하세요. |
x-ms-version |
요청을 실행하는 데 사용되는 Blob Storage의 버전을 나타냅니다. |
Date |
응답이 시작된 시간을 나타내는 UTC 날짜/시간 값입니다. 서비스에서 이 값을 생성합니다. |
x-ms-copy-id: <id> |
이 복사 작업에 대한 문자열 식별자입니다. with Get Blob Properties 를 사용하여 이 복사 작업의 상태를 확인하거나 보류 중인 복사를 중지하려면 pass to 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 .
중요합니다
Microsoft는 관리 ID와 함께 Microsoft Entra ID를 사용하여 Azure Storage에 대한 요청을 승인하는 것이 좋습니다. Microsoft Entra ID는 공유 키 권한 부여에 비해 뛰어난 보안 및 사용 편의성을 제공합니다.
- Microsoft Entra ID(권장)
-
SAS(공유 액세스 서명)
-
공유 키
Azure Storage는 Microsoft Entra ID를 사용하여 Blob 데이터 요청에 대해 권한을 부여하는 것을 지원합니다. Microsoft Entra ID를 사용하면 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 관리 ID일 수 있습니다. 보안 주체는 OAuth 2.0 토큰을 반환하기 위해 Microsoft Entra ID에 의해 인증됩니다. 그런 다음 토큰을 사용하여 Blob service에 대한 요청을 승인할 수 있습니다.
Microsoft Entra ID를 사용한 권한 부여에 대한 자세한 내용은 Microsoft Entra ID사용하여 Blob에 대한 액세스 권한 부여를 참조하세요.
권한
아래에는 Microsoft Entra 사용자, 그룹, 관리 ID 또는 서비스 주체가 Incremental Copy Blob 작업을 호출하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.
- Azure RBAC 작업:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (기존 Blob에 쓰는 경우) 또는 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (대상에 새 Blob을 쓰는 경우)
- 최소 권한 기본 제공 역할:Storage Blob 데이터 기여자
Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터액세스하기 위한 Azure 역할 할당을 참조하세요.
비고
증분 복사의 대상은 존재하지 않거나 동일한 원본 Blob에서 이전 증분 복사를 사용하여 만들어졌어야 합니다. 만든 후 대상 Blob은 원본과 영구적으로 연결되며 증분 복사본에만 사용할 수 있습니다. 및 List Blobs API는 Get Blob Properties Blob이 이러한 방식으로 생성된 증분 복사 Blob인지 여부를 나타냅니다.
증분 복사 Blob을 직접 다운로드할 수 없습니다. 유일하게 지원되는 작업은 Get Blob Properties, Incremental Copy Blob, 및 Delete Blob입니다. 평소와 같이 복사된 스냅샷을 읽고 삭제할 수 있습니다.
서비스에서 증분 복사를 비동기적으로 수행하며 완료를 위해 폴링해야 합니다. 보류 중인 복사본을 폴링하는 방법에 대한 자세한 내용은 API를 Copy Blob 참조하세요. 복사가 완료되면 대상 Blob에 새 스냅샷이 포함됩니다. API는 Get Blob Properties 새로 생성된 스냅샷의 스냅샷 시간을 반환합니다.
대상 Blob에서 증분 복사를 처음 수행하면 원본에서 완전히 복사된 스냅샷과 함께 새 Blob이 만들어집니다. 이후에 호출될 Incremental Copy Blob 때마다 이전에 복사된 스냅샷의 차등 변경 내용만 복사하여 새 스냅샷을 만듭니다.
차등 변경 내용은 원본 Blob 스냅샷에 대한 호출을 실행하여 Get Page Ranges 서버에서 계산됩니다. 가장 최근에 복사된 스냅샷으로 설정합니다 prevsnapshot . 따라서 에 대한 Get Page Ranges 동일한 제한이 적용됩니다 Incremental Copy Blob. 특히 스냅숏을 오름차순으로 복사해야 하며, 또는 Copy Blob를 Incremental Copy Blob 사용하여 Put Blob 원본 Blob을 다시 만들면 새 스냅숏에서 실패합니다.
복사된 스냅샷에서 사용하는 추가 스토리지 공간은 복사 중에 전송된 차등 데이터의 크기입니다. 스냅샷에서 차등 Get Page Ranges API 호출을 수행하여 이전 스냅샷과 비교하여 이 크기를 확인할 수 있습니다.
참고하십시오
Azure Storage 대한 요청 권한 부여
상태 및 오류 코드
Blob Storage 작업에 대한 시간 제한 설정