【发布时间】:2018-12-18 21:12:32
【问题描述】:
我的服务器获取 azure blob 文件的 URL(SAS 只读)并将其复制到不同存储帐户中的另一个 blob。复制命令是异步命令(StartCopyAsync())。
复制文件只是这台服务器做的一件事,它还在做更多事情。如果一个(或多个)其他计算失败,则抛出异常。
发生异常时,我会进行回滚 - 这意味着删除我在第一阶段复制的文件。我这样做是这样的:
await backupFile.DeleteIfExistsAsync();
问题
我收到此错误代码:
System.AggregateException: One or more errors occurred. (There is currently a pending copy operation.)
---> Microsoft.WindowsAzure.Storage.StorageException: There is currently a pending copy operation.
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token) at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.DeleteIfExistsAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
我猜是因为异步复制还没有完成......
这是否可以通过异步删除命令来解决,这将在复制命令完成后发生?
欢迎任何其他解决方案。谢谢!
【问题讨论】:
-
你可以试试看
backupFile.CopyState.Status?
标签: c# azure azure-storage azure-blob-storage