你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
以前的 Azure 存储版本
Azure 存储支持多个版本。 若要针对存储发出请求,必须指定要用于该操作的版本,除非请求是匿名的。
可用版本
Azure 存储的当前版本为 2024-11-04,建议尽可能使用该版本。 有关最新版本的信息,请参阅 Azure 存储
其他支持的版本包括:
通过共享访问签名授权的请求
根据用于生成 SAS 的版本处理通过共享访问签名发出的请求。 版本 2013-08-15 和 2012-02-12 包括版本控制参数(SignedVersion
或 sv
),指定用于授权和运行 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:
如果请求具有有效的
x-ms-version
标头,则使用最早的有效版本(2009-07-17)来解释共享访问签名参数。x-ms-version
指定的版本用于执行 Blob 存储操作。如果请求没有
x-ms-version
标头,并且所有者已使用 设置 Blob 存储属性设置默认版本,则使用版本 2009-07-17 解释参数。 所有者指定的默认版本用于执行 Blob 存储操作。如果请求没有
x-ms-version
标头,并且所有者尚未设置默认版本,Blob 存储将使用最早的有效版本(2009-07-17)来解释参数。 如果容器是公共的,并且其访问限制是使用版本 2009-09-19 或更高版本的 设置容器 ACL 操作,则使用版本 2009-09-19 执行 Blob 存储操作。如果请求没有
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 存储 的