페이지 범위 가져오기Get Page Ranges

페이지 범위 가져오기 작업은 페이지 blob 또는 페이지 blob의 스냅숏에 대해 유효한 페이지 범위 목록을 반환 합니다.The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob.

요청Request

다음과 같이 페이지 범위 가져오기 요청을 생성할 수 있습니다.The Get Page Ranges request may be constructed as follows. HTTPS를 사용하는 것이 좋습니다.HTTPS is recommended. Myaccount을 사용자의 저장소 계정 이름으로 바꿉니다.Replace myaccount with the name of your storage account:

GET 메서드 요청 URIGET Method Request URI HTTP 버전HTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=pagelist

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=pagelist&snapshot=<DateTime>

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=pagelist&snapshot=<DateTime>&prevsnapshot=<DateTime>
HTTP/1.1HTTP/1.1

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

에뮬레이트된 저장소 서비스에 대해 요청을 수행 하는 경우 에뮬레이터 호스트 이름 및 Blob service 포트를 127.0.0.1:10000으로 지정 하 고 그 뒤에 에뮬레이트된 저장소 계정 이름을 지정 합니다.When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name:

GET 메서드 요청 URIGET Method Request URI HTTP 버전HTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=pagelist HTTP/1.1HTTP/1.1

자세한 내용은 개발 및 테스트에 Azure Storage 에뮬레이터 사용을 참조 하세요.For more information, see Using the Azure Storage Emulator for Development and Testing.

URI 매개 변수URI Parameters

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.The following additional parameters may be specified on the request URI.

매개 변수Parameter 설명Description
snapshot 선택 사항입니다.Optional. Snapshot 매개 변수는 있는 경우 정보를 검색할 blob 스냅숏을 지정 하는 불투명 날짜/시간 값입니다.The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve information from. Blob 스냅숏을 사용 하는 방법에 대 한 자세한 내용은 blob의 스냅숏 만들기를 참조 하세요.For more information on working with blob snapshots, see Creating a Snapshot of a Blob.
timeout 선택 사항입니다.Optional. timeout 매개 변수는 초 단위로 표시됩니다.The timeout parameter is expressed in seconds. 자세한 내용은 Blob 서비스 작업에 대 한 시간 제한 설정을 참조 하세요.For more information, see Setting Timeouts for Blob Service Operations.
prevsnapshot 버전 2015-07-08 이상에서 선택 사항입니다.Optional in version 2015-07-08 and newer. prevsnapshot매개 변수는 대상 blob와 이전 스냅숏 간에 변경 된 페이지만 응답에 포함 되도록 지정 하는 DateTime 값입니다.The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. 변경 된 페이지에는 업데이트 된 페이지와 지워진 페이지가 모두 포함 됩니다.Changed pages include both updated and cleared pages. Prevsnapshot로 지정 된 스냅숏이 둘 중의 이전 인 경우에만 대상 blob이 스냅숏이 될 수 있습니다.The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two.

증분 스냅숏은 현재 2016 년 1 월 1 일 이후에 생성 된 blob에 대해서만 지원 됩니다.Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016.

요청 헤더Request Headers

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.The following table describes required and optional request headers.

요청 헤더Request Header 설명Description
Authorization 필수 요소.Required. 인증 체계, 계정 이름 및 서명을 지정 합니다.Specifies the authorization scheme, account name, and signature. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.For more information, see Authorize requests to Azure Storage.
Date 또는 x-ms-dateDate or x-ms-date 필수 요소.Required. 요청에 대한 UTC(협정 세계시)를 지정합니다.Specifies the Coordinated Universal Time (UTC) for the request. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.For more information, see Authorize requests to Azure Storage.
x-ms-version 모든 권한이 부여 된 요청에 필요 합니다. 익명 요청의 경우 선택 사항입니다.Required for all authorized requests, optional for anonymous requests. 이 요청에 사용할 작업의 버전을 지정합니다.Specifies the version of the operation to use for this request. 자세한 내용은 Azure Storage Services에 대 한 버전 관리를 참조 하세요.For more information, see Versioning for the Azure Storage Services.
Range 선택 사항입니다.Optional. 범위를 나열할 바이트 범위(포함)를 지정합니다.Specifies the range of bytes over which to list ranges, inclusively. 생략하면 blob의 모든 범위가 반환됩니다.If omitted, then all ranges for the blob are returned.
x-ms-range 선택 사항입니다.Optional. 범위를 나열할 바이트 범위(포함)를 지정합니다.Specifies the range of bytes over which to list ranges, inclusively. Rangex-ms-range가 모두 지정된 경우 서비스에서 x-ms-range의 값이 사용됩니다.If both Range and x-ms-range are specified, the service uses the value of x-ms-range. 자세한 내용은 Blob 서비스 작업에 대 한 범위 헤더 지정 을 참조 하세요.See Specifying the Range Header for Blob Service Operations for more information.
x-ms-lease-id:<ID> 선택 사항입니다.Optional. 이 헤더가 지정되었으면 다음 조건이 모두 충족될 경우에만 작업이 수행됩니다.If this header is specified, the operation will be performed only if both of the following conditions are met:

-Blob의 임대가 현재 활성 상태입니다.- The blob's lease is currently active.

-요청에 지정 된 임대 ID가 blob의 임대 ID와 일치 합니다.- The lease ID specified in the request matches that of the blob.

이 헤더가 지정되었고 이들 조건이 모두 충족되지 않으면 요청이 실패하고 작업이 실패하며 상태 코드 412(전제 조건 실패)가 표시됩니다.If this header is specified and both of these conditions are not met, the request will fail and the operation will fail with status code 412 (Precondition Failed).
x-ms-previous-snapshot-url 버전 2019-07-07 이상에서 선택 사항입니다.Optional in version 2019-07-07 and newer. previous-snapshot-url 지정 된 URI에 있는 대상 blob과 스냅숏 간에 변경 된 페이지만 응답에 포함 하도록 지정 합니다.The previous-snapshot-url specifies that the response will contain only pages that were changed between target blob and snapshot located at the specified URI. 변경 된 페이지에는 업데이트 된 페이지와 지워진 페이지가 모두 포함 됩니다.Changed pages include both updated and cleared pages. 이 헤더에 의해 지정 된 스냅숏이 둘 중의 이전 인 경우에만 대상 blob이 스냅숏이 될 수 있습니다.The target blob may be a snapshot, as long as the snapshot specified by this header is the older of the two.

증분 스냅숏은 현재 2016 년 1 월 1 일 이후에 생성 된 blob에 대해서만 지원 되며,이 헤더는 Managed Disk 시나리오 에서만 사용 해야 합니다.Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016 and that this header should only be used in Managed Disk scenarios. 그렇지 않으면 prevsnapshot 매개 변수를 사용 합니다.Otherwise, use the prevsnapshot parameter.
x-ms-client-request-id 선택 사항입니다.Optional. 저장소 분석 로깅을 사용 하도록 설정한 경우 분석 로그에 기록 되는 1 KiB 문자 제한이 있는 클라이언트 생성 불투명 값을 제공 합니다.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. 이 헤더를 사용하면 클라이언트 쪽 작업을 서버에서 받은 요청과 관련시키는 것이 좋습니다.Using this header is highly recommended for correlating client-side activities with requests received by the server. 자세한 내용은 스토리지 분석 로깅 및 Azure 로깅: 로그를 사용 하 여 저장소 요청 추적을 참조 하세요.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

이 작업은 또한 지정된 조건이 충족될 경우에만 페이지 범위를 가져오는 조건부 헤더 사용을 지원합니다.This operation also supports the use of conditional headers to get page ranges only if a specified condition is met. 자세한 내용은 Blob 서비스 작업의 조건부 헤더 지정을 참조하세요.For more information, see Specifying Conditional Headers for Blob Service Operations.

요청 본문Request Body

없음None.

응답Response

응답에는 HTTP 상태 코드, 응답 헤더 집합 및 응답 본문이 포함되어 있습니다.The response includes an HTTP status code, a set of response headers, and the response body.

상태 코드Status Code

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.A successful operation returns status code 200 (OK).

상태 코드에 대 한 자세한 내용은 상태 및 오류 코드를 참조 하세요.For information about status codes, see Status and Error Codes.

응답 헤더Response Headers

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다.The response for this operation includes the following headers. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다.The response may also include additional standard HTTP headers. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을따릅니다.All standard headers conform to the HTTP/1.1 protocol specification.

구문Syntax DescriptionDescription
Last-Modified Blob을 마지막으로 수정한 날짜/시간입니다.The date/time that the blob was last modified. 날짜 형식은 RFC 1123을 따릅니다.The date format follows RFC 1123.

blob의 메타데이터 또는 속성에 대한 업데이트를 포함하여 Blob을 수정하는 모든 작업은 수행할 경우 blob의 마지막 수정 시간이 변경됩니다.Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the blob's last modified time.
ETag ETag에는 클라이언트가 조건에 따라 작업을 수행하는 데 사용할 수 있는 값이 포함됩니다.The ETag contains a value that the client can use to perform the operation conditionally. 요청 버전이 2011-08-18 이상이면 ETag 값이 따옴표로 표시됩니다.If the request version is 2011-08-18 or newer, the ETag value will be in quotes.
x-ms-blob-content-length Blob의 크기(바이트)입니다.The size of the blob in bytes.
x-ms-request-id 이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다.This header uniquely identifies the request that was made and can be used for troubleshooting the request. 자세한 내용은 API 작업 문제 해결을 참조 하세요.For more information, see Troubleshooting API Operations.
x-ms-version 요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다.Indicates the version of the Blob service used to execute the request. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.This header is returned for requests made against version 2009-09-19 and later.

Blob 서비스의 2009-09-19 버전을 사용해서 컨테이너가 공용 액세스용으로 표시된 경우 지정된 버전이 없는 익명 요청에 대해서도 이 헤더가 반환됩니다.This header is also returned for anonymous requests without a version specified if the container was marked for public access using the 2009-09-19 version of the Blob service.
Date 응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-client-request-id 이 헤더를 사용 하 여 요청 및 해당 응답의 문제를 해결할 수 있습니다.This header can be used to troubleshoot requests and corresponding responses. 이 헤더의 값은 요청에 있는 경우 헤더의 값과 같으며 x-ms-client-request-id , 값은 최대 1024 표시 ASCII 문자입니다.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. x-ms-client-request-id요청에 헤더가 없는 경우이 헤더는 응답에 표시 되지 않습니다.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

응답 본문Response Body

응답 본문에는 증가하는 주소 페이지 범위별로 정렬된 겹치지 않는 유효한 페이지 범위 목록이 포함됩니다.The response body includes a list of non-overlapping valid page ranges, sorted by increasing address page range. 응답 본문의 형식은 다음과 같습니다.The format of the response body is as follows.

<?xml version="1.0" encoding="utf-8"?>  
<PageList>  
   <PageRange>  
      <Start>Start Byte</Start>  
      <End>End Byte</End>  
   </PageRange>  
   <PageRange>  
      <Start>Start Byte</Start>  
      <End>End Byte</End>  
   </PageRange>  
</PageList>  

blob의 전체 페이지 집합이 생성된 경우, 응답 본문에는 페이지 범위가 포함되지 않습니다.If the blob's entire set of pages has been cleared, the response body will not include any page ranges.

prevsnapshot매개 변수가 지정 된 경우 응답에는 대상 스냅숏 또는 blob와 이전 스냅숏 간에 다른 페이지만 포함 됩니다.If the prevsnapshot parameter was specified, the response will include only the pages that differ between the target snapshot or blob and the previous snapshot. 반환 된 페이지에는 업데이트 되었거나 지워진 페이지가 모두 포함 됩니다.The pages returned include both pages that were updated or that were cleared. 이 응답 본문의 형식은 다음과 같습니다.The format of this response body is as follows:

<?xml version="1.0" encoding="utf-8"?>  
<PageList>  
   <PageRange>  
      <Start>Start Byte</Start>  
      <End>End Byte</End>  
   </PageRange>  
   <ClearRange>  
      <Start>Start Byte</Start>  
      <End>End Byte</End>  
   </ClearRange>  
   <PageRange>  
      <Start>Start Byte</Start>  
      <End>End Byte</End>  
   </PageRange>  
</PageList>  
  

Blob의 전체 페이지 집합을 제거 하 고 prevsnapshot 매개 변수를 지정 하지 않은 경우 응답 본문에는 페이지 범위가 포함 되지 않습니다.If the blob's entire set of pages has been cleared and the prevsnapshot parameter was not specified, the response body will not include any page ranges.

권한 부여Authorization

이 작업은 계정 소유자 또는 blob 읽기 권한이 있는 공유 액세스 서명을 사용하는 모든 사용자가 수행할 수 있습니다.This operation can be performed by the account owner or by anyone using a Shared Access Signature that has permission to read the blob. 컨테이너의 ACL이 익명 액세스를 허용하도록 설정된 경우 모든 클라이언트가 이 작업을 호출할 수 있습니다.If the container's ACL is set to allow anonymous access, any client may call this operation.

설명Remarks

각 페이지 범위에 대한 시작 및 종료 바이트 오프셋도 범위에 포함됩니다.The start and end byte offsets for each page range are inclusive.

여러 번의 쓰기 작업으로 인해 심하게 조각화된 페이지 blob의 경우 내부 서버 시간 초과로 인해 Get Page Ranges 요청이 실패할 수 있습니다.In a highly fragmented page blob with a large number of writes, a Get Page Ranges request can fail due to an internal server timeout. 쓰기 작업 수가 많은 페이지 blob의 범위를 검색하는 응용 프로그램은 페이지 범위를 한 번에 조금씩 나눠서 검색해야 합니다.Applications retrieving ranges of a page blob with a large number of write operations should retrieve a subset of page ranges at a time. 자세한 내용은 세그먼트에서 많은 페이지 Blob의 페이지 범위 가져오기를 참조 하세요.For more information, see Getting the Page Ranges of a Large Page Blob in Segments.

버전 2015-07-08부터 매개 변수를 사용 하 여를 호출 Get Page Ranges prevsnapshot 하 여 기본 blob와 스냅숏 사이 또는 blob의 두 스냅숏 간에 다른 페이지를 반환할 수 있습니다.Beginning with version 2015-07-08, you can call Get Page Ranges with the prevsnapshot parameter to return the pages that differ between the base blob and a snapshot, or between two snapshots of the blob. 이러한 페이지 차이를 사용 하 여 페이지 blob의 증분 스냅숏을 저장할 수 있습니다.Using these page differences, you can save an incremental snapshot of a page blob. 증분 스냅숏은 고유한 백업 솔루션을 구현 하려는 경우 가상 머신 디스크를 백업 하는 비용 효율적인 방법입니다.Incremental snapshots are a cost-effective way to back up virtual machine disks if you wish to implement your own backup solution.

Get Page Ranges매개 변수를 사용 하 여를 호출 prevsnapshot 하면로 지정 된 스냅숏이 생성 된 이후에 업데이트 되거나 지워진 페이지가 반환 prevsnapshot 됩니다.Calling Get Page Ranges with the prevsnapshot parameter returns pages that have been updated or cleared since the snapshot specified by prevsnapshot was taken. 그런 다음 Put 페이지를 사용 하 여 다른 저장소 계정의 백업 페이지 blob에 반환 된 페이지를 복사할 수 있습니다.You can then copy the pages returned to a backup page blob in another storage account, using Put Page.

버전 2019-07-07부터 x-ms-previous-snapshot-url 헤더를 사용 하 여 증분 스냅숏에 대 한 관리 디스크 계정에 스냅숏을 지정할 수 있습니다.Beginning with version 2019-07-07, the x-ms-previous-snapshot-url header can be used to specify snapshots in Managed Disk accounts for incremental snapshots. Managed Disks 사용 하지 않는 경우 prevsnapshot 쿼리 매개 변수를 사용 해야 합니다.If not using Managed Disks, the prevsnapshot query parameter should be used.

Blob에 대 한 특정 작업을 수행 Get Page Ranges 하면 증분 스냅숏을 반환 하기 위해를 호출할 때 오류가 발생 합니다.Certain operations on a blob will cause Get Page Ranges to fail when called to return an incremental snapshot. Get Pages Ranges는로 지정 된 스냅숏이 만들어진 후 blob 배치 또는 blob 복사 요청의 대상인 blob에서 호출 된 경우 오류 코드 409 (충돌)와 함께 실패 합니다 prevsnapshot .Get Pages Ranges will fail with error code 409 (Conflict) if it is called on a blob that was the target of a Put Blob or Copy Blob request after the snapshot specified by prevsnapshot was taken. Get Page Ranges작업 대상이 스냅숏이 면로 지정 된 스냅숏이 오래 된 경우에만 호출이 성공 prevsnapshot 하 고 Put Blob Copy Blob 두 스냅숏 사이의 간격으로 또는 작업이 호출 되지 않습니다.If the target of the Get Page Ranges operation is itself a snapshot, then the call will succeed as long as the snapshot specified by prevsnapshot is older, and no Put Blob or Copy Blob operation was called in the interval between the two snapshots.

참고

증분 스냅숏은 현재 2016 년 1 월 1 일 이후에 생성 된 blob에 대해서만 지원 됩니다.Incremental snapshots are currently supported only for blobs created on or after January 1, 2016. 이전 blob에서이 기능을 사용 하려고 하면 BlobOverwritten HTTP 오류 코드 409 (충돌) 인 오류가 발생 합니다.Attempting to use this feature on an older blob will result in the BlobOverwritten error, which is HTTP error code 409 (Conflict).

참조See also

Azure Storage에 대 한 요청 권한 부여 Authorize requests to Azure Storage
상태 및 오류 코드 Status and Error Codes
Blob 서비스 작업에 대 한 시간 제한 설정 Setting Timeouts for Blob Service Operations
여러 세그먼트의 큰 페이지 blob에 대한 페이지 범위 가져오기Getting the Page Ranges of a Large Page Blob in Segments