正在吊销单个Blob上的共享访问签名



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

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

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

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

谢谢。

来自文档:

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

还有:

此外,共享访问签名URL可以引用存储的提供对集合的额外控制级别的访问策略的签名,包括修改或撤销对资源(如有必要)。有关资源级别访问的详细信息策略,请参阅使用存储访问策略。

因此,如果您想控制撤销,请使用预定义的存储访问策略。或者创建短期SAS的

顺便说一句,获取锁被称为Blob Lease。还可以看看这篇关于租赁斑点和锁定的博客文章。

最新更新