覆盖期间的Azure blob可用性

时间:2011-10-12 07:40:06

标签: azure blobstorage

在使用新版本覆盖时,是否可以下载azure blob?

在我使用Cloud Storage Studio的测试中,下载被阻止,直到覆盖完成,但我的测试来自同一台机器,因此我无法确定这是否正确。

如果在覆盖期间它不可用,那么我假设解决方案(维持可用性)将使用不同的blob名称上传,然后重命名一次完成。有没有人有比这更好的解决方案?

1 个答案:

答案 0 :(得分:2)

在覆盖期间可以使用blob。您看到的内容取决于您是使用块blob还是页面blob。对于块blob,您将下载旧版本,直到最后一个块提交。最终的PutBlockList操作将以原子方式将blob更新为新版本。我不确定无论如何对于非常大的blob你正在下载当PutBlockList原子地更新blob时会发生什么。选择是:a。)请求继续使用旧的blob,b。)连接断开,或者c :)你开始下载新blob的字节。测试真有趣!

如果您正在使用页面blob(没有租约),则会在您下方更新页面范围时读取不一致的数据。每个页面范围更新都是原子的,但除非您租用blob并保留其他读取器(读者可以对租用的blob进行快照并读取状态),否则它看起来很奇怪。

我可能会尝试在读取方案中间测试块blob更新,看看会发生什么。但是,您的核心问题应该得到解答:blob可用。