使用AzureFileCopy任务覆盖Azure Blob存储文件的相关疑问
结论
覆盖操作执行时正在下载旧版本文件的用户不会出现下载失败的情况。
底层逻辑说明
Azure Blob存储对单个Blob的覆盖写入是原子操作:
- 已经发起的旧版本Blob下载请求会正常执行完成,旧版本Blob的资源会被临时保留直到所有活跃的读取请求处理完毕
- 只有覆盖操作完全结束后新发起的读取请求,才会返回新版本的Blob内容
- 不会出现文件下载到一半内容被替换,导致下载中断、文件损坏的情况
你用到的AzureFileCopy@4任务底层调用的是Azure Blob存储的标准上传接口,完全符合上述原子操作特性,完全可以在正式发布流程中放心使用覆盖逻辑,不用担忧影响正在进行的用户下载。
官方说明
微软官方的Azure Blob存储相关文档中明确说明,单个Blob的替换操作具备原子性,活跃的读取操作不会被中途触发的覆盖写入打断,这属于Blob存储原生的可靠性保障特性。
内容的提问来源于stack exchange,提问作者F Chopin
相关产品推荐
相关产品推荐

