我想将我的Blob类型从“附加Blob”更改为“ BlockBlob”。 根据{{3}} 这是不可能的。因此,我想复制
var container = blobClient.GetContainerReference("videos");
var sourceBlob = container.GetAppendBlobReference(blobName);
var newBlobName = blobName + "FinalBlob";
var targetBlob = container.GetBlobReference(newBlobName);
targetBlob.StartCopyAsync(sourceBlob.Uri).Wait();
生成的blob是一个Appendblob,而不是BlockBlob
答案 0 :(得分:1)
无法通过复制操作更改Blob类型。目标blob的类型将始终与源blob的类型相同。
我想到的两个可能的解决方案:
other answer
所述,您可以将append Blob下载到本地计算机,然后再次将其作为Block Blob上传。Block Blob
。答案 1 :(得分:0)
复制命令可以正常工作:
foreach (var blob in container.ListBlobs(input.OutputPrefix + "/", true).OfType<CloudAppendBlob>())
{
var test = container.GetBlockBlobReference(blob.Name.Replace(".csv", "out.csv"));
await test.StartCopyAsync(new Uri(blob.Uri+blob.GetSharedAccessSignature(new SharedAccessBlobPolicy { Permissions= SharedAccessBlobPermissions.Read, SharedAccessExpiryTime= DateTimeOffset.UtcNow.AddHours(2) })));
}
以上代码已被证明有效。