从防止蔚蓝的blob其他服务被访问的真实在创建的时候它(Preventing azure blob

2019-10-21 16:32发布

Azure的BLOB API有时看起来像是被外星人设计的。 就像专为当大多数简单的人需要通过箍跳一些很奇特的使用情况。 这里就是这样的。

我有两个辅助角色。 一个是创造斑点,另外一个是处理他们(移动到“已完成”时,处理完成文件夹)。 团块大小可以适度地大,像100 MB。 很显然,我不希望第二个角色开始读取斑点斑点具有所有数据之前。 好了,我们可以期望从租赁API的帮助:获得租约,复制BLOB,释放租约。 然后,读者也将尝试收购加工前的租约,因此将不得不等待。 但是,没有,租期不能上还不存在一个blob收购。 另外,我无法找到创建了“关于”租赁作为一个原子操作的BLOB的任何方法。

请让我知道,如果你知道的伎俩,使其工作。 您忠诚的。

Answer 1:

很显然,我不希望第二个角色开始读取斑点斑点具有所有数据之前。

假设你正在创建一个BlockBlob ,到时候的斑被提交(或者换句话说,所有的数据被写入到BLOB)的BLOB将不存在,也不会拿出在团块上市结果所有意图和目的(除非你上市的时候斑点专门请教未提交的斑点)。 所以我觉得你没有做什么特别的存在。

好了,我们可以期望从租赁API的帮助:获得租约,复制BLOB,释放租约。 然后,读者也将尝试收购加工前的租约,因此将不得不等待。

这里有一个替代的解决方案这一点。 你可以做的是利用Azure Queues 。 当BLOB创工作者角色上传完毕的团块,它只是在这将由工作者角色处理BLOB轮询队列写入消息。 假设有的处理器辅助角色许多情况下,则每个实例可以GET从这个队列,其将工作类似于消息blob lease (消息仅适用于一个实例),然后开始处理斑点。



文章来源: Preventing azure blob from being accessed by other service while it's being created
标签: azure blob blobs