【发布时间】:2021-08-19 00:54:01
【问题描述】:
它们是否可以从 Append Blob 转换为 Block Blob 。
问候 C
【问题讨论】:
标签: azure azure-storage azure-blob-storage
它们是否可以从 Append Blob 转换为 Block Blob 。
问候 C
【问题讨论】:
标签: azure azure-storage azure-blob-storage
对于 blob 转换,我使用的是
--blob-type=BlockBlob
我的 azcopy.exe 语句末尾的选项。到目前为止,它运行良好。
祝你好运!
【讨论】:
它们是否可以从 Append Blob 转换为 Block Blob 。
一旦创建了 blob,就不能更改其类型,只能通过使用适合该 blob 类型的操作来更新它,即将块或块列表写入块 blob,将块附加到附加blob,并将页面写入页面 blob。
更多信息请参考此链接:Understanding Block Blobs, Append Blobs, and Page Blobs
【讨论】:
它们是否可以从 Append Blob 转换为 Block Blob 。
不允许在 blob 类型之间进行自动转换。您需要做的是下载 blob 并将其重新上传为 Block Blob。
【讨论】:
鉴于:我有源 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);
}
【讨论】: