Azure 对于小于64 MB的大小,CloudBlockBlob的UploadFromStream函数是原子的吗?

Azure 对于小于64 MB的大小,CloudBlockBlob的UploadFromStream函数是原子的吗?,azure,stream,azure-storage-blobs,atomicity,Azure,Stream,Azure Storage Blobs,Atomicity,我正在从BlockBlob读取一个文件。文件大小保证小于64 MB。因此,它是单块操作。在阅读完这个文件后,我正在修改它的一些部分,并通过CloudBlockBlob的UploadFromStream函数重新上传它。我的问题是“对于小于64MB的大小,CloudBlockBlob的UploadFromStream函数是原子的吗?”。在写入过程中发生异常后,azure存储上是否可能存在损坏的文件 注意:我问了一个AppendBlob,得到的答案是它是原子的。是的,如果它小于64MB,则它是原子的,

我正在从BlockBlob读取一个文件。文件大小保证小于64 MB。因此,它是单块操作。在阅读完这个文件后,我正在修改它的一些部分,并通过CloudBlockBlob的UploadFromStream函数重新上传它。我的问题是“对于小于64MB的大小,CloudBlockBlob的UploadFromStream函数是原子的吗?”。在写入过程中发生异常后,azure存储上是否可能存在损坏的文件


注意:我问了一个AppendBlob,得到的答案是它是原子的。

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

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