【发布时间】:2015-02-14 17:53:34
【问题描述】:
我的任务是同时将一些图像加载到 blob 存储中。 blob 的名称定义为 blob 的 md5。不同的线程可能会尝试从不同的位置加载相同的文件。
现在我需要知道如何阻止其他线程加载相同的文件,如果首先已经尝试上传此类 blob。
【问题讨论】:
我的任务是同时将一些图像加载到 blob 存储中。 blob 的名称定义为 blob 的 md5。不同的线程可能会尝试从不同的位置加载相同的文件。
现在我需要知道如何阻止其他线程加载相同的文件,如果首先已经尝试上传此类 blob。
【问题讨论】:
您可以通过使用乐观并发来做到这一点,而无需租用它。基本上设置一个访问条件,表示此 blob 将不同于具有此名称的 blob 的所有 etag。如果确实存在带有一些 etag 的 blob,则第二次上传将失败。
var access = AccessCondition.GenerateIfNoneMatchCondition("*");
await blobRef.UploadFromStreamAsync(stream, access, null, null);
【讨论】: