【问题标题】:Create a temporary blob on Azure Blob Storage在 Azure Blob 存储上创建临时 Blob
【发布时间】:2017-11-20 18:01:03
【问题描述】:

有没有在 Azure 上创建临时 blob,然后在上传完成后重命名它的好方法?我想实现一个原子上传,如果上传中途中止,它应该保留 blob 的原始内容。

对于“好”,我的意思是可以立即给我一个可用的 blob 名称,理想情况下是“锁定”它。对于高访问率,当另一个应用程序尝试检查相同的 blob 名称时,即使检查伪临时 blob 名称是否已经存在也可能会出现问题。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    我认为您不需要进行重命名,因为方便地,blob 上传已经是原子的。块以未提交状态上传,然后最后的原子步骤通过提供其 Id 列表来提交它们。如果最后一步永远不会发生,您将根本看不到 blob(除非您明确要求“未提交的 blob”,您通常不会这样做)。参见PutBlockPutBlockList文档中的备注

    (最终,所有块 Blob 创建最终都会调用“PutBlob”(对于小 Blob),这在定义上是原子的;或者是一系列 PutBlock 调用,然后是 PutBlockList。例如,.NET 存储客户端库使用 CloubBlobStream,它调用那些 Put... 函数来完成它的工作)

    【讨论】:

      【解决方案2】:

      不太确定我是否理解您的用例,但您不能重命名 blob。您需要将其复制到一个新的 blob 中,以完成重命名。

      【讨论】:

        猜你喜欢
        • 2020-11-12
        • 2011-02-24
        • 1970-01-01
        • 2014-01-06
        • 2021-11-19
        • 2018-07-26
        • 1970-01-01
        • 2015-02-14
        • 2012-03-02
        相关资源
        最近更新 更多