你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
以前的 Azure 存储版本
Azure 存储支持多个版本。 若要对存储发出请求,必须指定要用于该操作的版本,除非请求是匿名的。
可用版本
Azure 存储的当前版本为 2023-11-03,建议尽可能使用该版本。 有关最新版本的信息,请参阅 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
调用 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 执行规则:
如果请求具有有效的
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。 否则,将使用 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 或更高版本。 浏览器和其他流式处理客户端需要这些标头,以便高效下载和重试。