导出 (0) 打印
全部展开

指定 BLOB 服务操作的范围标头

更新时间: 2014年11月

有几个 Blob 服务 GET 操作支持使用标准 HTTP Range 标头。很多 HTTP 客户端(包括 .NET 客户端库)都将 Range 标头的大小限制为 32 位整数,因此其值最大为 4 GB。由于块 Blob 和页 Blob 的大小可能超过 4 GB,BLOB 服务对使用 HTTP x-ms-range 标头的任何操作,都接受自定义范围标头 Range

一些 HTTP 客户端(包括 Microsoft Silverlight 库)限制访问 Range 标头。x-ms-range 标头也可用于绕过这些限制。

如果在请求中指定 x-ms-range 标头,则服务将使用 x-ms-range 指定的范围,否则使用 Range 标头指定的范围。

note备注
如果设置 Range 对象的 PutPageProperties 属性,Azure 存储客户端库将自动处理请求中相应范围标头的设置。

BLOB 服务对于 Rangex-ms-range 标头接受两个字节的范围。对于这些标头,字节范围必须遵守以下格式:

  • 对于使用 2011-08-18 或更新版本的请求,bytes=startByte-

  • 对于使用所有版本(2009-04-14 到最新版本)的请求,bytes=startByte-endByte

第一个格式 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(无法满足请求的范围)。

第二种格式 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(无法满足请求的范围)。

另请参阅

显示:
© 2014 Microsoft