Get Page Ranges
Updated: August 4, 2015
The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob.
The Get Page Ranges request may be constructed as follows. HTTPS is recommended. Replace myaccount with the name of your storage account:
GET Method Request URI
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 Method Request URI
For more information, see Using the Azure Storage Emulator for Development and Testing.
The following additional parameters may be specified on the request URI.
Optional. The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve information from. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.
Optional. The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.
The following table describes required and optional request headers.
Required. Specifies the authentication scheme, account name, and signature. For more information, see Authentication for the Azure Storage Services.
Date or x-ms-date
Required. Specifies the Coordinated Universal Time (UTC) for the request. For more information, see Authentication for the Azure Storage Services.
Required for all authenticated requests, optional for anonymous requests. Specifies the version of the operation to use for this request. For more information, see Versioning for the Azure Storage Services.
Optional. Specifies the range of bytes over which to list ranges, inclusively. If omitted, then all ranges for the blob are returned.
Optional. Specifies the range of bytes over which to list ranges, inclusively.
If both Range and x-ms-range are specified, the service uses the value of x-ms-range. See Specifying the Range Header for Blob Service Operations for more information.
Optional. If this header is specified, the operation will be performed only if both of the following conditions are met:
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).
Optional. Provides a client-generated, opaque value with a 1 KB 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. 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. For more information, see Specifying Conditional Headers for Blob Service Operations.
The response includes an HTTP status code, a set of response headers, and the response body.
A successful operation returns status code 200 (OK).
For information about status codes, see Status and Error Codes.
The response for this operation includes the following headers. The response may also include additional standard HTTP headers. All standard headers conform to the HTTP/1.1 protocol specification.
The date/time that the blob was last modified. The date format follows RFC 1123.
Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the blob's last modified time.
The ETag contains a value that the client can use to perform the operation conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes.
The size of the blob in bytes.
This header uniquely identifies the request that was made and can be used for troubleshooting the request. For more information, see Troubleshooting API Operations.
Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and later.
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.
A UTC date/time value generated by the service that indicates the time at which the response was initiated.
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>
If the blob's entire set of pages has been cleared, the response body will not include any page ranges.
This operation can be performed by the account owner or by anyone using a Shared Access Signature that has permission to read the blob. If the container's ACL is set to allow anonymous access, any client may call this operation.
The start and end byte offsets for each page range are inclusive.
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. Applications retrieving ranges of a page blob with a large number of write operations should retrieve a subset of page ranges at a time. For more information, see Getting the Page Ranges of a Large Page Blob in Segments.