我必须更新存储为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,似乎在上传结束时至少“提交了”新文件,但我找不到更新现有文件时会发生什么情况的信息。
所以,问题是:在更新(替换)操作期间其他客户端会读什么?
答案 0 :(得分:2)
我对此场景进行了测试(我没有找到任何官方文档),用600M文件更新了Blob中的400M文件。并且在更新过程中(开始更新后大约10秒钟),使用代码读取正在更新的Blob。
测试结果是,在更新过程中只能读取旧文件。