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

列出范围

List Ranges操作返回一个列表,其中包含某个文件的有效范围。

协议可用性

已启用文件共享协议 可用
SMB 是
NFS 否

请求

可以按如下所示构造 List Ranges 请求。 建议使用 HTTPS。

方法 请求 URI HTTP 版本
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=rangelist HTTP/1.1
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sharesnapshot=<DateTime>&comp=rangelist HTTP/1.1
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=rangelist&snapshot=<DateTime>&prevsharesnapshot=<DateTime> HTTP/1.1
GET https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=rangelist&prevsharesnapshot=<DateTime> HTTP/1.1

将请求 URI 中所示的路径组件替换为你自己的组件,如下所示:

路径组件 说明
myaccount 存储帐户的名称。
myshare 文件共享的名称。
mydirectorypath 可选。 父目录的路径。
myfile 文件的名称。

有关路径命名限制的详细信息,请参阅 命名和引用共享、目录、文件和元数据

URI 参数

可以在请求 URI 上指定以下附加参数。

参数 说明
sharesnapshot 可选。 版本 2017-04-17 及更高版本。 参数sharesnapshot是一个不透明的DateTime值,如果存在,则指定要查询文件的共享快照。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅设置Azure 文件存储操作的超时
prevsharesnapshot 在版本 2020-02-10 及更高版本中可选。 参数prevsharesnapshot是一个不透明DateTime值,如果存在,则指定上一个快照。

当此参数和 sharesnapshot 都存在时,响应将仅包含两个快照之间已更改的页面范围。 当只有 prevsharesnapshot 时,响应将仅包含在此快照与实时共享之间更改的页面范围。

已更改的页面包括更新和清除的页面。

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有已授权的请求是必需的。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
Range 可选。 指定要列出范围的字节范围(含该字节)。 如果省略,则返回该文件的所有范围。
x-ms-range 可选。 指定要列出范围的字节范围(含该字节)。

如果指定了 Rangex-ms-range,服务将使用 x-ms-range 值。 有关详细信息,请参阅指定Azure 文件存储操作的范围标头
x-ms-lease-id:<ID> 可选。 版本 2019-02-02 及更高版本。 如果指定了 标头,则仅当文件的租约当前处于活动状态,并且请求中指定的租约 ID 与该文件的租约 ID 匹配时,才会执行该操作。 否则,操作将失败,状态代码为 412 (前置条件失败) 。
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1 kibite (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure 文件存储
x-ms-file-request-intent 如果 Authorization 标头指定 OAuth 令牌,则为必需。 可接受的值为 backup。 此标头指定Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action如果或包含在分配给使用 标头授权的标识的 RBAC 策略中,则应授予 或 Authorization 。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 可选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。 有关详细信息,请参阅 命名和引用共享、目录、文件和元数据

请求正文

无。

响应

响应包括 HTTP 状态代码、一组响应标头以及采用 XML 格式的响应正文。

状态代码

此操作成功后返回状态代码 200(正常)。 有关状态代码的信息,请参阅 状态和错误代码

响应标头

此操作的响应包括以下标头。 响应还可以包含其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范

响应标头 说明
Last-Modified 上次修改该文件的日期/时间。 修改文件的任何操作(包括更新文件的元数据或属性)将更改文件的上次修改时间。
ETag 包含 ETag 一个值,该值表示文件的版本(以引号表示)。
x-ms-content-length 文件大小(字节)。 如果 prevsharesnapshot 存在,则如果查询参数) 存在,则该值描述 (sharesnapshot的文件大小sharesnapshot。 否则,它将描述实时文件的大小。
x-ms-request-id 此标头唯一标识发出的请求,可用于对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答
x-ms-version 指示用于运行请求的Azure 文件存储的版本。
Datex-ms-date 一个 UTC 日期/时间值,该值指示启动响应的时间。 服务生成此值。
x-ms-client-request-id 可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在此标头的值,则此标头的值等于该标头的值 x-ms-client-request-id 。 该值最多为 1024 个可见 ASCII 字符。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

响应正文

响应正文包含非重叠有效范围的列表,这些范围按照递增的地址范围进行排序。 响应正文的格式如下所示。

<?xml version="1.0" encoding="utf-8"?>  
<Ranges>  
  <Range>  
    <Start>Start Byte</Start>  
    <End>End Byte</End>  
  </Range>  
  <Range>  
    <Start>Start Byte</Start>  
    <End>End Byte</End>  
  </Range>  
</Ranges>  

如果文件的整个范围集已被清除,响应正文将不包含任何范围。

如果prevsharesnapshot指定 ,则响应仅包括目标快照 (或实时文件) 与上一个快照之间的不同页面。 返回的范围包括已更新或已清除的两个范围。 此响应的格式如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<Ranges> 
  <Range> 
    <Start>Start Byte</Start> 
    <End>End Byte</Start> 
  </Range> 
  <ClearRange> 
    <Start>Start Byte</Start>
    <End>End Byte</Start> 
  </ClearRange> 
  <Range> 
    <Start>Start Byte</Start> 
    <End>End Byte</Start> 
  </Range> 
</Ranges> 

如果文件的整个页面集已被清除,并且 prevsharesnapshot 未指定 参数,则响应正文将不包含任何范围。

授权

只有帐户所有者才能调用此操作。

注解

每个范围的起始和结束字节偏移量将包含在内。 请参阅 Put Range 的 Range Update OperationsRange Clear Operations示例。 这些示例显示了从文件写入或清除 512 未对齐字节范围时返回的范围。

在具有大量写入操作的高度零碎的文件中,List Ranges请求可能会由于内部服务器超时而失败。 检索具有大量写入操作的文件范围的应用程序每次应检索一部分范围。

从版本 2020-02-10 开始,可以使用 参数调用List Rangesprevsharesnapshot。 这会返回在实时文件和快照之间或快照上的文件的两个快照之间不同的范围。 通过使用这些范围差异,可以检索文件的增量快照。 如果要实现自己的备份解决方案,增量快照是备份文件的一种经济高效方法。

调用文件以检索增量快照时,对文件的某些操作会导致List Ranges失败。 该服务返回:

  • 404 (如果调用某个快照 (或实时快照中不存在的文件,则 sharesnapshot) 未找到) 。
  • 409 (如果在指定的prevsharesnapshot快照之后对覆盖副本的目标文件调用冲突)
  • 409 (如果在执行指定的prevsharesnapshot快照之后,对删除并重新创建具有相同名称和位置的文件调用冲突) 。

另请参阅

对文件执行的操作