【发布时间】:2021-01-08 12:46:37
【问题描述】:
我有一个案例,有时CloudBlockBlob.StartCopyAsync 仅将 0 字节数据写入 输入资产的 blob...应该是什么情况?所以,我决定在块 blob 长度不会增加的情况下开始复制......有什么建议吗?
private async Task CreateInputAssetBlobAsync(UploadRequest request)
{
var cloudBlobContainer = new CloudBlobContainer(request.InputAssetStorageUri);
var blockBlob = cloudBlobContainer.GetBlockBlobReference(request.BlobName);
var storageCredentials = new Microsoft.Azure.Storage.Auth.StorageCredentials(_apiAccess.TempBlobAccountName, _apiAccess.TempBlobContainerKey);
var tempBlobContainer = new CloudBlobContainer(new Uri(_apiAccess.TempBlobContainerAddress), storageCredentials);
var tempBlockBlob = tempBlobContainer.GetBlockBlobReference(request.BlobName);
try
{
await blockBlob.StartCopyAsync(tempBlockBlob);
do
{
if (blockBlob.CopyState.Status == CopyStatus.Pending)
await Task.Delay(1000);
await blockBlob.FetchAttributesAsync();
}
while (blockBlob.CopyState.Status != CopyStatus.Success);
return;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
【问题讨论】:
-
你需要稍微修改你的代码,把文件复制方法写成一个通用函数。我的代码也是从官方抄来修改测试的,应该对你有帮助。
-
如果我的解决方案对您有帮助,请您将我的答案标记为accepted,tks~
-
您的问题解决了吗?有进展吗?
标签: c# asp.net-core azure-blob-storage azure-media-services