撤消单个blob上的共享访问签名

时间:2012-12-04 07:37:57

标签: azure azure-storage-blobs

我参与构建一项服务,其中包括必须通过azure blob将文件访问权限分发给客户端。客户端应该能够请求对文件进行写锁定,这意味着在一段指定的时间内,只有一个客户端可以写入blob。

我的问题是如何实现这种锁定机制。目前我的解决方案是通过共享访问签名为客户端提供访问权限,该服务确保每次只有一个对每个blob具有写访问权限的共享访问权处于活动状态。

这种方法的问题是我希望撤销访问权限。如果客户端在共享访问过期之前完成了其写入操作,我希望能够撤销签名,以便我可以向其他人授予写入权限。通过使用容器级策略,我只能撤销使用该策略对所有签名的访问权限,但我的目的是撤销对单个blob上的签名的访问权。

所以我的问题是:是否有一些方法可以撤销单个blob上某个特定共享访问签名的访问权限?如果没有,有没有其他方法来实现我在Azure中描述的那种功能?

谢谢。

1 个答案:

答案 0 :(得分:3)

From documentation

  

附加了共享访问签名授予的权限   用于创建签名的帐户密钥,以及关联的   存储的访问策略(如果有)。如果没有存储的访问策略   指定,撤销共享访问签名的唯一方法是   更改帐户密钥。

此外:

  

此外,共享访问签名URL可以引用存储的   访问策略,提供对集合的附加级别的控制   签名,包括修改或撤销访问权限的能力   资源,如有必要。有关资源级访问的更多信息   策略,请参阅使用存储的访问策略。

因此,如果要控制撤消,请使用预定义的存储访问策略。或者创造短暂的生活SAS的

顺便说一句,执行锁定称为Blob Lease。请查看leasing blobs上的此博客文章并锁定。