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

以前的 Azure 存储版本

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

可用版本

Azure 存储的当前版本为 2024-11-04,建议尽可能使用该版本。 有关最新版本的信息,请参阅 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调用 列表 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 或更高版本,则使用 2009-09-19。 否则,将使用最早版本的 Blob 存储。
2011-08-18 最早有效的共享访问签名版本 (2009-07-17) 2011-08-18.
任何版本 XXXX-XX-XX 最早有效的共享访问签名版本 (2009-07-17) 版本 XXXX-XX-XX

注意

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

另请参阅

Azure 存储 的 版本控制