你当前正在访问 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(无法满足请求的范围)。