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

服务 SAS 示例

本主题显示共享访问签名与 REST API 结合使用的示例用法。 共享访问签名允许你提供对容器和 Blob、表、队列或文件的访问权限。 通过提供共享访问签名,你可以为用户授予在指定时间段内对特定容器、Blog、队列、表或表实体范围的受限访问权限。 有关构造、分析和使用共享访问签名的完整详细信息,请参阅 使用共享访问签名委派访问权限。 有关使用 .NET 存储客户端库创建共享访问签名的信息,请参阅 创建和使用共享访问签名

Blob 示例

本节包含的示例演示用于 Blob 上的 REST 操作的共享访问签名。

示例:使用容器的共享访问签名获取 Blob

2013-08-15 之前的版本

以下示例显示如何构造用于授予容器读取访问权限的共享访问签名。

构成 URL 的已签署的签名字段包括:

signedstart=2009-02-09  
signedexpiry=2009-02-10  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2012-02-12  

按如下所示构造签名:

StringToSign = r + \n   
               2009-02-09 + \n  
               2009-02-10 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2012-02-12  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  

请求 URL 指定指定时间间隔内容器的 pictures 读取权限。 请求 URL 表示的资源是 Blob,但共享访问签名是在容器上指定的。 也可以在 Blob 本身上指定共享访问签名。

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2012-02-12&st=2009-02-09&se=2009-02-10&sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d   
HTTP/1.1  
Host: myaccount.blob.core.windows.net  
x-ms-date: <date>  
  

版本 2013-08-15 及更高版本

以下示例显示如何使用 2013-08-15 版本的存储服务构造用于授予容器读取访问权限的共享访问签名。

2013-08-15 版本引入了一些新查询参数,使发出请求的客户端只能替代此共享访问签名的响应标头。

响应标头和相应的查询参数如下所示:

响应标头名称 相应的 SAS 查询参数
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

构成签名的 string-to-sign 的字段包括:

signedstart=2013-08-16  
signedexpiry=2013-08-17  
signedresource=c  
signedpermissions=r  
signedidentifier=YWJjZGVmZw==  
signedversion=2013-08-15  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

按如下所示构造 string-to-sign:

StringToSign = r + \n   
               2013-08-16 + \n  
               2013-08-17 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

请求 URL 指定在特定间隔内对 pictures 容器拥有读取权限。 请求 URL 表示的资源是 Blob,但共享访问签名是在容器上指定的。 也可以在 Blob 本身上指定共享访问签名。

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2013-08-15&st=2013-08-16&se=2013-08-17&sr=c&sp=r&rscd=file;%20attachment&rsct=binary &sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d HTTP/1.1  
  

对于使用此签名发出请求的客户端,如果满足以下条件,将执行 Get Blob 操作:

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求所指定的 Blob (/myaccount/pictures/profile.jpg) 位于指定为已签名资源的容器 (/myaccount/pictures) 中。

rsct=binary 共享访问签名上指定 和 rscd=file; attachment 将分别替代响应中的内容类型标头和 content-disposition 标头。

使用此共享访问签名发出的请求的成功响应类似如下内容:

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
x-ms-blob-type: BlockBlob  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2013-08-15  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

示例:使用容器的共享访问签名上传 Blob

以下示例显示如何构造用于写入 Blob 的共享访问签名。 在本例中,我们将构造一个用于授予对容器中的所有 Blob 的写权限的签名。 然后我们使用该共享访问签名向容器中写入一个 Blob。

将构成 URL 的已签名字段包括:

  
signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

按如下所示构造签名:

  
StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
  

请求 URL 指定指定间隔内容器的 pictures 写入权限。 请求 URL 表示的资源是 Blob,但共享访问签名是在容器上指定的。 也可以在 Blob 本身上指定共享访问签名。

PUT https://myaccount.blob.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
  
Content-Length: 12  
  
Hello World.  
  

如果满足以下条件,将使用此签名调用 放置 Blob

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求指定的 Blob (/myaccount/pictures/photo.jpg) 位于指定为已签名资源的容器 (/myaccount/pictures) 中。

示例:使用 Blob 的共享访问签名删除 Blob

以下示例显示如何构造用于授予对 Blob 的删除权限的共享访问签名并删除 Blob。

注意

请注意,分发删除操作的共享访问签名时应格外谨慎,因为允许客户端删除数据可能会产生意外后果。

构成 URL 的已签署的签名字段包括:

  
signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

按如下所示构造签名:

  
StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               blob/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
  

请求 URL 指定在特定间隔内对 pictures 容器拥有删除权限。 请求 URL 表示的资源是一个 Blob,共享访问签名是在该 Blob 上指定的。 也可以在 Blob 容器上指定共享访问签名以授予删除容器内的任何 Blob 的权限。

  
DELETE https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  
  

如果满足以下条件,将使用此签名调用 删除 Blob

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求指定的 Blob (/myaccount/pictures/profile.jpg) 与指定为已签名资源的 Blob 相匹配。

文件示例

本部分包含的示例演示对文件的 REST 操作的共享访问签名。

示例:使用共享的共享访问签名获取文件

以下示例演示如何构造共享访问签名,以便对共享进行读取访问。

很少有查询参数可以让发出请求的客户端替代此共享访问签名的响应标头。

响应标头和相应的查询参数如下所示:

响应标头名称 相应的 SAS 查询参数
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

构成签名的 string-to-sign 的字段包括:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015—02-21  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

按如下所示构造 string-to-sign:

StringToSign = r + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015—02-21 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

共享访问签名指定指定时间间隔内对 pictures 共享的读取权限。 请求 URL 表示的资源是一个文件,但共享访问签名是在共享上指定的。 还可以在文件本身上指定它。

GET https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08:49Z&se=2015-07-02T08:49Z&sr=c&sp=r&rscd=file;%20attachment&rsct=binary&sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d  
  

对于使用此签名发出请求的客户端,如果满足以下条件,将执行 “获取文件” 操作:

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求 指定的文件 (/myaccount/pictures/profile.jpg) 位于指定为 /myaccount/pictures () 的已签名资源的共享中。

rsct=binary 共享访问签名上指定 和 rscd=file; attachmentcontent-type 分别替代响应中的 和 content-disposition 标头。

使用此共享访问签名发出的请求的成功响应类似如下内容:

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2015-02-21  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

示例:在共享上使用共享访问签名上传文件

以下示例演示如何构造用于写入文件的共享访问签名。 在此示例中,我们将构造一个签名,该签名为共享中的所有文件授予写入权限。 然后,我们使用共享访问签名写入共享中的文件。

构成 URL 的已签署的签名字段包括:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signature=Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

按如下所示构造签名:

StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  

请求 URL 指定指定间隔内容器的 pictures 写入权限。 请求 URL 表示的资源是 Blob,但共享访问签名是在容器上指定的。 也可以在 Blob 本身上指定共享访问签名。

PUT https://myaccount.file.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 12  
  
Hello World.  

如果满足以下条件,将使用此签名调用 “创建文件 ”:

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求 (/myaccount/pictures/photo.jpg) 指定的文件位于指定为 /myaccount/pictures () 的已签名资源的共享中。

示例:使用文件的共享访问签名删除文件

以下示例演示如何构造一个共享访问签名来授予文件删除权限,然后使用共享访问签名删除该文件。

注意

应明智地分发 DELETE 操作的共享访问签名,因为允许客户端删除数据可能会产生意外的后果。

构成 URL 的已签署的签名字段包括:

signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

按如下所示构造签名:

StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               file/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  

请求 URL 指定在指定间隔内对图片共享的删除权限。 请求 URL 表示的资源是一个文件,共享访问签名是在该文件上指定的。 还可以在文件的共享上指定它,以授予删除共享中的任何文件的权限。

DELETE https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  

使用此签名,如果满足以下条件,将调用 删除文件

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 请求 (/myaccount/pictures/profile.jpg) 指定的文件与指定为签名资源的文件匹配。

队列示例

本节包含的示例演示用于队列上的 REST 操作的共享访问签名。 在这些示例中,队列服务操作只在满足以下条件时才运行:

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 该请求指定的队列与经过共享访问签名授权的队列是同一队列。

示例:使用共享访问签名检索消息

以下示例显示如何构造用于从队列中检索消息的共享访问签名。 该签名授予对队列的消息处理权限。 最后,该示例使用共享访问签名从队列中检索消息。

检查以下签名签名字段、字符串转签名的构造,以及请求获得授权后调用“获取消息”操作的 URL 的结构:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=p  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
  
StringToSign = p + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=p&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

示例:使用共享访问签名添加消息

以下示例显示如何构造用于向队列中添加消息的共享访问签名。 该签名授予对队列的添加权限。 最后,该示例使用签名添加消息。

检查以下签名的签名字段、StringToSign 字符串的构造,以及请求获得授权后调用 Put Message 操作的 URL 的结构:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=a  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = a + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=a&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
Content-Length: 100  
  
<QueueMessage>  
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>  
</QueueMessage>  
  

示例:使用共享访问签名查看消息并获取消息

以下示例显示如何构造一个共享访问签名,以查看队列中的下一条消息并检索队列的消息计数。 该签名授予对队列的读取权限。 最后,该示例使用共享访问签名查看消息,然后读取队列元数据,其中包括消息计数。

检查以下签名签名字段、字符串到签名的构造,以及调用 “速览消息”“获取队列元数据” 操作的 URL 的结构:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = r + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myacccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  
GET https://myaccount.queue.core.windows.net/myqueue?comp=metadata&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

表示例

本节包含的示例演示用于表上的 REST 操作的共享访问签名。 在这些示例中,表服务操作只在满足以下条件时才运行:

  • 请求已成功获得授权。

  • 在共享访问签名指定的时间段内发出请求。

  • 该请求不违反关联的存储访问策略的任何条款。

  • 该请求指定的队列与经过共享访问签名授权的队列是同一队列。

示例:使用共享访问签名查询表

以下示例显示如何构造用于查询表中的实体的共享访问签名。 该签名授予对表中的特定范围的查询权限。 最后,该示例使用共享访问签名查询该范围内的实体。

检查以下签名字段、StringToSign 字符串的构造以及调用查询实体操作的 URL 的构造。 此“查询实体”操作的结果只包括由 startpkstartrkendpkendrk 定义的范围内的实体。

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
startpk="Coho Winery"  
startrk="Auburn"  
endpk="Coho Winery"  
endrk="Seattle"  
  
String-To-Sign = r + \n
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw==  + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 Auburn + \n  
                 Coho Winery + \n  
                 Seattle  
  
GET https://myaccount.table.core.windows.net/MyTable?$filter=PartitionKey%20eq%20'Coho%20Winery'&sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&srk=Auburn&epk=Coho%20Winery&erk=Seattle HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
  

示例:使用共享访问签名更新表

以下示例显示如何构造用于更新表中的实体的共享访问签名。 该签名授予对特定实体范围的更新权限。 最后,该示例使用共享访问签名更新该范围内的实体。

检查以下已签署的签名字段、StringToSign 字符串的构造以及调用“更新实体”操作的 URL 的构造。 “更新实体”操作只能更新由 startpkendpk 定义的分区范围内的实体。

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=u  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
startpk="Coho Winery"  
endpk="Coho Winery"  
  
String-To-Sign = u + \n   
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw== + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 + \n  
                 Coho Winery + \n  
  
MERGE https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho%20Winery',RowKey='Seattle')?sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=u&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&epk=Coho%20Winery HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
If-Match: *  
Content-Type: application/atom+xml  
Content-Length: 696  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id>https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho Winery',RowKey='Seattle')</id>  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>P</d:PartitionKey>  
      <d:RowKey>R</d:RowKey>  
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>  
    </m:properties>  
  </content>  
</entry>  
  

另请参阅

使用共享访问签名委托访问权限
创建服务 SAS