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

列表范围

List Ranges作返回文件的有效范围列表。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

协议可用性

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

请求

List Ranges 请求构造如下。 建议使用 HTTPS。

方法 请求 URI HTTP 版本
获取 https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=rangelist HTTP/1.1
获取 https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sharesnapshot=<DateTime>&comp=rangelist HTTP/1.1
获取 https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=rangelist&snapshot=<DateTime>&prevsharesnapshot=<DateTime> HTTP/1.1
获取 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 所有授权请求都是必需的。 指定要用于此请求的作的版本。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

有关详细信息,请参阅 azure 存储服务 版本控制。
Range 自选。 指定列表范围(含)的字节范围。 如果省略,则返回文件的所有范围。
x-ms-range 自选。 指定列表范围(含)的字节范围。

如果同时指定了 Rangex-ms-range 标头,则服务将使用 x-ms-range的值。 有关详细信息,请参阅 指定 Azure 文件存储作的范围标头
x-ms-lease-id:<ID> 自选。 版本 2019-02-02 及更高版本。 如果指定了标头,则仅当文件的租约当前处于活动状态时,才会执行该作,并且请求中指定的租约 ID 与该文件的租约 ID 匹配。 否则,作失败,状态代码为 412(前置条件失败)。

如果文件位于启用了 NFS 协议的文件共享上,则忽略此标头,不支持文件租用。
x-ms-client-request-id 自选。 提供客户端生成的不透明值,该值具有配置日志记录时日志中记录的 1-kibibyte (KiB) 字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅 监视 Azure 文件
x-ms-file-request-intent 如果需要 Authorization 标头指定 OAuth 令牌。 可接受的值为 backup。 此标头指定,如果 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在分配给使用 Authorization 标头授权的标识的 RBAC 策略中,则应授予 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 自选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。

如果目标位于启用了 NFS 协议的文件共享上,则默认支持尾随点,则忽略此标头。

有关详细信息,请参阅 命名和引用共享、目录、文件和元数据
x-ms-file-support-rename: { <Boolean> } 自选。 在版本 2024-05-04 及更高版本中受支持。 仅当存在 prevsharesnapshot 查询参数时,才允许此标头。 布尔值确定在上一快照中文件的位置与请求 URI 中的位置不同时,是否应列出文件的更改范围,因为重命名或移动作。 如果值为 true,将返回文件的有效更改范围。 如果值为 false,则作将导致失败并出现 409(冲突)响应。 默认值为 false。

仅 SMB 请求标头

没有。

仅 NFS 请求标头

没有。

请求正文

没有。

响应

响应包括 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 标头,则响应中不会显示此标头。

仅 SMB 响应标头

没有。

仅 NFS 响应标头

没有。

响应正文

响应正文包括一个非重叠有效范围的列表,按增加地址范围进行排序。 响应正文的格式如下所示。

<?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 参数,则响应正文将不包含任何范围。

授权

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

言论

每个范围的开始和结束字节偏移量都是包容性的。 有关 放置范围,请参阅 范围更新作范围清除作 示例。 这些示例显示如果从文件中写入或清除 512 未对齐字节范围,则返回哪些范围。

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

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

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

  • 如果调用某个快照中不存在的文件(或者未指定 sharesnapshot,则为 404(未找到)。
  • 409(冲突)如果调用的文件是 prevsharesnapshot指定的快照 后覆盖复制的目标。
  • 如果在创建 prevsharesnapshot 指定的快照后调用已删除并重新创建的文件,则为 409 (冲突)。

另请参阅

对文件