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

以前的 Azure 存储版本

Azure 存储支持多个版本。 若要对存储发出请求,必须指定要用于该操作的版本,除非请求是匿名的。

可用版本

Azure 存储的当前版本为 2023-11-03,建议尽可能使用该版本。 有关最新版本的信息,请参阅 Azure 存储的版本控制

其他支持的版本包括:

通过共享访问签名授权的请求

通过共享访问签名发出的请求将根据用于生成 SAS 的版本进行处理。 版本 2013-08-15 和 2012-02-12 包含版本控制参数 (SignedVersionsv) ,指定使用哪个版本来授权和运行 SAS 请求。

版本 2012-02-12 及更高版本

使用版本 2012-02-12 或更高版本生成的具有共享访问签名的请求需要 SignedVersion (sv) 参数。 SignedVersion 指示用于授权和调用 API 操作的服务版本。 x-ms-version如果标头在请求上传递,则忽略该标头。 SignedVersion (sv)只有 参数确定用于处理通过共享访问签名发出的请求的服务版本。

注意

对于版本 2013-08-15 及更早版本,请确保准备和分发共享访问签名 URL 的服务 (即共享访问签名提供程序或生成器) 指定客户端软件 (即共享访问签名使用者) 所理解的 Azure 存储服务版本。

下表指示通过共享访问签名发出的请求,哪个版本支持哪些服务:

SignedVersion (sv) 参数的值 支持的服务
2015-12-11 所有 (Azure Blob 存储、Azure 队列存储、Azure 表存储和Azure 文件存储)
2015-04-05 所有 (Blob 存储、队列存储、表存储和Azure 文件存储)
2015-02-21 所有 (Blob 存储、队列存储、表存储和Azure 文件存储)
2014-02-14 Blob 存储、队列存储和表存储
2013-08-15 Blob 存储、队列存储和表存储
2012-02-12 Blob 存储、队列存储和表存储

以下示例演示使用 sv=2013-08-15调用 List Blob 的共享访问签名。

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2013-08-15&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d

在此示例中,服务使用版本 2013-08-15 授权并运行请求。 响应不会在 元素下Blob包含 Url 元素,因为它在 2013-08-15 版本中已删除。

如果客户端应用程序使用基于版本 2012-02-12 的存储客户端库版本,并发出使用此共享访问签名的请求,则客户端需要 Uri 元素。 因此,请求失败并出现 NullReferenceException

2012-02-12 之前的版本仅 (Blob 存储)

Blob 存储在版本 2009-07-17 中引入了共享访问签名。 表存储和队列存储在版本 2012-02-12 中引入了共享访问签名,因此版本 2012-02-12 之前的共享访问签名行为仅适用于 Blob 存储。

版本 2012-02-12 还引入了 SignedVersion (sv) 参数,使共享访问签名生成器能够指定要用于处理请求的版本。 使用 2012-02-12 之前的版本生成的共享访问签名无法指定要用于处理请求的版本,因此依赖于以下授权和 API 执行规则:

  1. 如果请求具有有效的 x-ms-version 标头,则最早的有效版本 (2009-07-17) 用于解释共享访问签名参数。 指定的 x-ms-version 版本用于执行 Blob 存储操作。

  2. 如果请求没有 x-ms-version 标头,并且所有者已使用 “设置 Blob 存储属性”设置默认版本,则使用版本 2009-07-17 来解释参数。 所有者指定的默认版本用于执行 Blob 存储操作。

  3. 如果请求没有 x-ms-version 标头,并且所有者尚未设置默认版本,则 Blob 存储将使用最早的有效版本 (2009-07-17) 来解释参数。 如果容器是公共容器,并且其访问限制是使用版本 2009-09-19 或更高版本的 “设置容器 ACL ”操作设置的,则使用版本 2009-09-19 来执行 Blob 存储操作。

  4. 如果请求没有 x-ms-version 标头,并且所有者尚未设置默认版本,则 Blob 存储将使用最早的有效版本 (2009-07-17) 来解释参数。 如果未使用使用版本 2009-09-19 或更高版本的 “设置容器 ACL ”操作设置容器访问限制,则使用最早版本的服务执行 Blob 存储操作。

下表将这些规则应用于各种方案,并假定 SignedVersion 不包括 参数。

x-ms-version 标头的值 用于解释 Blob 存储授权和授权参数的版本 用于执行 Blob 存储操作的版本
最早有效的共享访问签名版本 (2009-07-17) 如果使用版本 2009-09-19 或更高版本设置 容器 ACL 将容器 设置为公共,则使用 2009-09-19。 否则,将使用 Blob 存储的最早版本。
2011-08-18 最早有效的共享访问签名版本 (2009-07-17) 2011-08-18.
任何版本 XXXX-XX-XX 最早有效的共享访问签名版本 (2009-07-17) 版本 XXXX-XX-XX

注意

对于需要带引号 ETag 的值或有效 Accept-Ranges 响应标头的方案,Microsoft 建议使用版本 2011-08-18 或更高版本。 浏览器和其他流式处理客户端需要这些标头,以便高效下载和重试。

另请参阅

Azure 存储的版本控制