3

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

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

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

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

谢谢你。

4

1 回答 1

4

从文档

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

还:

此外,共享访问签名 URL 可以引用存储的访问策略,该策略提供对一组签名的额外控制级别,包括在必要时修改或撤销对资源的访问的能力。有关资源级访问策略的更多信息,请参阅使用存储的访问策略。

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

顺便说一句,获得锁称为Blob Lease另请查看有关租赁 blob和锁定的博客文章。

于 2012-12-04T08:47:27.800 回答