你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
指定 Blob 服务操作的范围标头
有几个 Blob 服务 GET 操作支持使用标准 HTTP Range
标头。 许多 HTTP 客户端(包括 .NET 客户端库)将标头的大小 Range
限制为 32 位整数,因此其值上限为 4 GiB。 由于块 Blob 和页 Blob 的大小都可能大于 4 GiB,因此 Blob 服务接受任何采用 HTTP Range
标头的操作的自定义范围标头x-ms-range
。
一些 HTTP 客户端(包括 Microsoft Silverlight 库)限制访问 Range
标头。
x-ms-range
标头也可用于绕过这些限制。
如果在请求中指定 x-ms-range
标头,则服务将使用 x-ms-range
指定的范围,否则使用 Range
标头指定的范围。
备注
如果设置 Range
对象的 PutPageProperties
属性,Azure 存储客户端库将自动处理请求中相应范围标头的设置。
范围标头格式
BLOB 服务对于 Range
和 x-ms-range
标头接受两个字节的范围。 对于这些标头,字节范围必须遵守以下格式:
对于使用 2011-08-18 或更新版本的请求,
bytes=startByte-
对于使用所有版本(2009-04-14 到最新版本)的请求,
bytes=startByte-endByte
格式 1:bytes=startByte-
第一个格式 bytes=startByte-
仅可用于使用版本 2011-08-18 或更新版本的请求,或 SDK 1.6 或更新版本的存储模拟器服务。 此范围将返回从偏移量 startByte
起到 Blob 结尾的字节。 例如,要指定包含自一个 Blob 的前 256 个字节之后所有字节的范围,可以在以下任一标头中传递:
Range: bytes=255-
x-ms-range: bytes=255-
响应中的 Content-Length
标头等于从偏移量起到 Blob 结尾的字节数。 使用上面的示例范围,对于长度为 1,024 字节的 Blob, Content-Length
将为 756。
如果偏移量有效,且未超过 Blob 的总长度,则请求将返回状态代码 206(部分内容)。 如果偏移量无效且超过 Blob 的总长度,则请求将返回状态代码 416(无法满足请求的范围)。
格式 2:bytes=startByte-endByte
第二种格式 bytes=startByte-endByte
可用于使用所有版本(2009-04-14 到最新版本)的请求以及所有版本的存储模拟器服务。 此范围将返回从偏移量 startByte
起到 endByte
的字节。 例如,要指定包含 Blob 前 512 字节的范围,可在以下任一标头中传递:
Range: bytes=0-511
x-ms-range: bytes=0-511
响应中的 Content-Length
标头等于每两个偏移量之间的字节数。 如果对一个长度为 1,024 的 Blob 使用以上示例范围,则 Content-Length
将是 512。
如果偏移量有效,且未超过 Blob 的总长度,则请求将返回状态代码 206(部分内容)。 如果偏移量无效且超过 Blob 的总长度,则请求将返回状态代码 416(无法满足请求的范围)。