【问题标题】:How to convert from Azure Append Blob to Azure Block Blob如何从 Azure Append Blob 转换为 Azure Block Blob
【发布时间】:2021-08-19 00:54:01
【问题描述】:

它们是否可以从 Append Blob 转换为 Block Blob 。

问候 C

【问题讨论】:

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


    【解决方案1】:

    对于 blob 转换,我使用的是

    --blob-type=BlockBlob 
    

    我的 azcopy.exe 语句末尾的选项。到目前为止,它运行良好。

    祝你好运!

    【讨论】:

    • 您还可以使用 azcopy 复制具有相同源和目标但更改了输出填充名称或文件夹名称的 blob 项
    【解决方案2】:

    它们是否可以从 Append Blob 转换为 Block Blob 。

    一旦创建了 blob,就不能更改其类型,只能通过使用适合该 blob 类型的操作来更新它,即将块或块列表写入块 blob,将块附加到附加blob,并将页面写入页面 blob。

    更多信息请参考此链接:Understanding Block Blobs, Append Blobs, and Page Blobs

    【讨论】:

      【解决方案3】:

      它们是否可以从 Append Blob 转换为 Block Blob 。

      不允许在 blob 类型之间进行自动转换。您需要做的是下载 blob 并将其重新上传为 Block Blob。

      【讨论】:

      • 我们能否将 blob 移动到其他位置,然后更改类型以阻止 blob?
      • 如果移动 blob 是指将 blob 复制到另一个容器或存储帐户,那么答案是否定的。它行不通。您需要将其作为不同的 blob 类型下载并重新上传。
      【解决方案4】:

      鉴于:我有源 blob,它是附加 blob
      并且:我必须将源复制到新的 blob 容器作为块 blob
      当:我使用 CopyBlobToBlobckBlobContainer 函数
      那么:目标容器将具有与源相同的 blob,但作为块 blob。

          public void CopyBlobToBlobckBlobContainer(string sourceBlobName)
          {
              var sourceContainerClient = new BlobContainerClient(sourceConnectionString, BlobContainerName);
              var destinationContainerClient = new BlobContainerClient(destinationConnectionString, OutBlobContainerName);
              destinationContainerClient.CreateIfNotExists();
              
              var sourceBlobClient = sourceContainerClient.GetBlockBlobClient(sourceBlobName);
              var sourceUri = sourceBlobClient.GenerateSasUri(BlobSasPermissions.Read, ExpiryOffset);
      
              var destBlobClient = destinationContainerClient.GetBlockBlobClient(sourceBlobName);
              var result = destBlobClient.SyncUploadFromUri(sourceUri, overwrite: true);
              var response = result.GetRawResponse();
              if (response.Status != 201) throw new BlobCopyException(response.ReasonPhrase);
          }
      

      【讨论】:

        猜你喜欢
        • 2021-10-20
        • 1970-01-01
        • 2017-07-11
        • 2022-11-02
        • 2020-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多