CloudBlockBlob的UploadFromStream函数是否适用于小于64 MB的大小?

时间:2016-03-14 15:45:37

标签: azure stream azure-storage-blobs atomicity

我正在从BlockBlob读取一个文件。文件大小保证小于64 MB。因此它是单块操作。阅读完文件后,我正在更改部分内容,并通过CloudBlockBlob的UploadFromStream函数重新上传。我的问题是" CloudBlockBlob的UploadFromStream函数是否适用于小于64 MB的大小?"。在写入过程中出现异常后,是否有可能在azure存储上存在损坏的文件?

注意:我已经向similar question询问了AppendBlobs,并得到了一个原子的答案。

1 个答案:

答案 0 :(得分:4)

是的,它是原子的,如果它低于64MB,除非你并行化,因为并行化将数据块化。即使对于块blob大于64MB的数据,也有两步提交过程,所以如果上传失败,你仍然处于相对良好的状态。如果我们以4MB块的形式上传数据块,我们还必须提交这些块。因此,如果上传失败,我们将不会提交,您只需要一些额外的未提交块,只能通过get block list操作访问(也就是说,它们未提交的块不可下载)。因此,对于块blob上传失败,中间不会覆盖现有数据或一般会损坏它。