【问题标题】:Is UploadFromStream function of CloudBlockBlob atomic for sizes less than 64 MB?CloudBlockBlob 的 UploadFromStream 函数对于小于 64 MB 的大小是否是原子的?
【发布时间】:2016-03-15 01:37:53
【问题描述】:

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

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

【问题讨论】:

    标签: azure stream azure-blob-storage atomic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      相关资源
      最近更新 更多