写入期间锁定Azure blob

时间:2018-12-30 18:25:21

标签: c# azure-blob-storage

我必须更新存储为Azure blob的大文件。此更新将花费几秒钟,我需要确保没有其他客户端获得过部分更新的文件。

https://docs.microsoft.com/en-us/azure/storage/common/storage-concurrency中所述,锁定文件以进行写入应该很容易,但是据我所知,其他客户端仍将能够读取该文件。我可以使用读取锁,但这意味着只有一个客户端可以读取文件,而这不是我想要的。

根据Preventing azure blob from being accessed by other service while it's being created,似乎在上传结束时至少“提交了”新文件,但我找不到更新现有文件时会发生什么情况的信息。

所以,问题是:在更新(替换)操作期间其他客户端会读什么?

  • 他们将读取旧文件,直到提交新数据或
  • 他们会读取部分更新的文件内容吗?

1 个答案:

答案 0 :(得分:2)

我对此场景进行了测试(我没有找到任何官方文档),用600M文件更新了Blob中的400M文件。并且在更新过程中(开始更新后大约10秒钟),使用代码读取正在更新的Blob。

测试结果是,在更新过程中只能读取旧文件。

相关问题