你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

指定 FileREST 的范围标头

某些 FileREST GET 操作支持使用标准 HTTP Range 标头。 许多 HTTP 客户端(包括 .NET 客户端库)将标头的大小 Range 限制为 32 位整数,因此其值上限为 4 GiB。 由于文件的大小可能大于 4 GiB,因此Azure 文件存储接受任何采用 HTTP Range 标头的操作的自定义范围标头x-ms-range

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

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

范围标头格式

Azure 文件存储接受 和 x-ms-range 标头的Range两个字节范围。 对于这些标头,字节范围必须遵守以下格式:

  • bytes=startByte-
  • bytes=startByte-endByte

格式 1:bytes=startByte-

此范围将返回从偏移量 startByte 起到文件末尾的字节。 例如,若要指定包含自一个文件的前 256 个字节之后所有字节的范围,可以传入以下任一标头:

  • Range: bytes=255-
  • x-ms-range: bytes=255-

响应中的 Content-Length 标头等于从偏移量起到文件末尾的字节数。 如果对一个长度为 1,024 的文件使用以上示例范围,则 Content-Length 将是 756。

如果偏移量有效,且未超过文件的总长度,则请求将返回状态代码 206(部分内容)。 如果偏移量无效且超过文件的总长度,则请求将返回状态代码 416(无法满足请求的范围)。

格式 2:bytes=startByte-endByte

此范围将返回从偏移量 startByte 起到 endByte 的字节。 例如,要指定包含文件前 512 字节的范围,可在以下任一标头中传递:

  • Range: bytes=0-511

  • x-ms-range: bytes=0-511

响应中的 Content-Length 标头等于每两个偏移量之间的字节数。 使用上面的示例范围,对于长度为 1,024 字节的文件, Content-Length 将为 512。

如果偏移量有效且不超过文件的总长度,则请求将返回状态代码 206 (部分内容) 。 如果偏移量无效且超过文件的总长度,则请求将返回状态代码 416(无法满足请求的范围)。

另请参阅

Azure 文件存储概念