导出 (0) 打印
全部展开

Azure 存储服务版本化

更新时间: 2014年5月

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

Azure 存储服务的最新版本是 2014-02-14,建议尽可能地使用该版本。如需所有其他受支持的版本的列表以及各版本的使用信息,请参阅 Azure Storage Services Versions 2013-08-15 and Earlier

版本 14.02.14 包括这些更改:

  • 有了新的 Microsoft Azure 文件服务,Microsoft Azure 数据中心内运行的虚拟机 (VM) 便可使用 SMB 协议装载共享文件系统,并使用标准 Windows 文件 API 访问该文件系统。多个 VM(或云服务中运行的角色)可以同时附加到这些文件系统,因此,你可以在不同角色与实例之间轻松共享永久数据。文件服务的 REST API 类似于 Blob 服务的 API,除了 Windows 文件 API,它还提供另外一种文件访问方式。有关更多信息,请参见File Service REST API

  • 除了 SignedVersion (sv) 参数,共享访问签名目前还支持 api-version 参数。这些参数可用于控制使用哪个版本的存储服务对请求进行身份验证和授权,以及使用哪个版本执行 API 操作。请参阅下面标题为使用共享访问签名进行身份验证的请求的一节。

指定用于请求的存储服务版本的方式与该请求的身份验证方式相关。以下各节说明了身份验证选项以及如何针对每个选项指定服务版本:

  1. 使用共享密钥或共享密钥 Lite 的请求。若要使用共享密钥/共享密钥 Lite 对请求进行身份验证,你必须传递该请求中的 x-ms-version 标头。如果是 Blob 服务,你可以通过调用 设置 BLOB 服务属性 为所有请求指定默认版本。

  2. 使用共享访问签名 (SAS) 的请求。你可以根据共享访问签名指定两个版本化选项。如果已指定,则可选的 api-version 标头可指示要使用哪个服务版本执行 API 操作。SignedVersion (sv) 参数用于指定服务版本,使用该版本可对通过 SAS 发出的请求进行授权和身份验证。如果未指定 api-version 标头,则 SignedVersion (sv) 参数的值还指示用于执行 API 操作的版本。

  3. 使用匿名访问的请求。如果对 Blob 服务进行匿名访问,则不传入任何版本;下面说明了用于该请求的版本的试探方法。

若要使用共享密钥/共享密钥 Lite 对请求进行身份验证,请指定该请求中的 x-ms-version 标头。必须以 YYYY-MM-DD 的格式来指定 x-ms-version 请求标头值。例如:

Request Headers:
x-ms-version: 2014-02-14

以下规则指示如何评估使用共享密钥/共享密钥 Lite 的请求,以确定用于处理该请求的版本。

  • 如果请求具有有效的 x-ms-version 标头,则存储服务使用指定的版本。对于不使用共享访问签名的表和队列服务的所有请求,必须指定 x-ms-version 标头。Blob 服务的所有请求如果未使用共享访问签名,则必须指定 x-ms-version 标头,除非已设置默认版本,如下所述。

  • 如果 Blob 服务的请求没有 x-ms-version 标头,但帐户所有者已使用 设置 BLOB 服务属性 设置默认版本,则使用指定的默认版本作为用于处理该请求的版本。

使用版本 2014-02-14 生成的共享访问签名 (SAS) 支持两个版本化选项:

  • api-version 查询参数可定义 REST 协议版本,使用该版本可处理通过 SAS 发出的请求。

  • SignedVersion (sv) 查询参数可定义用于身份验证和授权的 SAS 版本。

SignedVersion 查询参数用于在客户端使用 SAS 发出请求时进行身份验证和授权。身份验证和授权参数(例如 sisrspsigstsetnspksrkepkerk)均使用版本 2014-02-14 来解释。

REST 协议参数(例如 rsccrscdrscersclrsct)使用 api-version 参数标头中提供的版本来实施。如果未指定 api-version 标头,则使用为 SignedVersion 提供的服务版本。

请注意,api-version 参数不是身份验证中的 string-to-sign 的一部分,如 构造共享访问签名 URI 中所述。

下表说明将 SignedVersion 参数设为版本 2014-02-14 或更高版本时服务用于身份验证和授权以及调用 REST 协议的版本化方案。

 

api-version 参数的值 用于身份验证和授权的版本 用于协议行为的版本

未指定

sv 参数中指定的版本

sv 参数中指定的版本

任何有效的存储服务版本,格式为 XXXX-XX-XX

sv 参数中指定的版本

有效的存储服务版本 XXXX-XX-XX

示例 1

以下示例请求在调用 列出 Blob 时使用了 sv=2014-02-14,而未使用 api-version 参数。

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

在这种情况下,服务将使用版本 2014-02-14 对请求进行身份验证和授权,同时使用版本 2014-02-14 执行操作。

示例 2

以下示例请求在调用 列出 Blob 时使用了 sv=2014-02-14,并使用了 api-version 参数。

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2014-02-14&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d&api-version=2012-02-12

在这里,服务将使用版本 2014-02-14 对请求进行身份验证和授权,并使用版本 2012-02-12 执行操作。

note备注
.NET 存储客户端库会始终将 REST 协议版本(在 api-version 参数中)设为所基于的版本。

如果 Blob 服务的请求未指定 x-ms-version 标头,并且尚未使用 设置 BLOB 服务属性 设置该服务的默认版本,则将使用最早的 Blob 服务版本来处理该请求。但是,如果通过使用版本 2009-09-19 或更高版本执行的 设置容器 ACL 操作公开了容器,则将使用版本 2009-09-19 来处理该请求。

另请参阅

显示:
© 2014 Microsoft