gpt4 book ai didi

c# - Azure SDK 2.0 中的 StartCopyFromBlob 需要几天时间?

转载 作者:太空狗 更新时间:2023-10-29 22:52:06 27 4
gpt4 key购买 nike

我遇到了一种情况,我将大量 blob 从一个存储容器复制到另一个存储容器,其中一些 blob 已复制,但 self 启动复制两天后,其中许多 blob 仍处于待处理状态。我做出这个决定是基于这样一个事实:如果我尝试对目标 blob 执行任何操作,我会收到以下错误:

Microsoft.WindowsAzure.StorageClient.StorageClientException : There is currently a pending copy operation. ----> System.Net.WebException : The remote server returned an error: (409) Conflict.

对此我能做些什么吗?例如,我可以在事后中止复制吗?

这是我用来执行复制的复制代码。

try
{
destinationBlob.StartCopyFromBlob(
new Uri(sourceBlob.Uri.AbsoluteUri + signature));
System.Diagnostics.Trace.TraceInformation(
"Copying: {0}", destinationEndpoint.EndpointState.BlobName);
}
catch (Exception ex)
{
var we = ex.InnerException as WebException;
if (we != null && we.Status == WebExceptionStatus.ProtocolError)
{
System.Diagnostics.Trace.TraceError(
"conflict with blob copy for blob {0}", sourceBlob.Uri.AbsoluteUri);
return 0;
}
}

最佳答案

正如您所知,Copy Blob operation is now asynchronous 。因此,当您对 Blob 调用 StartCopyFromBlob 操作时,Blob 存储服务会将复制操作放入队列中。由于它是一个异步操作,您不知道它何时会被处理。据我了解,最长时间为 2 周 7 天,即复制操作最多需要 2 周 7 天,并且如果未在2周7天,将被服务取消。

现在回答你的问题:

Is there anything i can do about this?

我不这么认为。您无法更改队列优先级。

For example can i abort the copy after the fact?

是的,可以。当您调用StartCopyFromBlob时,您将返回一个标识复制操作的字符串(称为复制 id)。您可以使用此副本 ID 并调用 AbortCopy对该 Blob 进行操作。您还可以在事后通过使用 FetchAttributes 获取 blob 属性来获取此副本 ID。方法。您想要检查的属性(property)是 CopyState .

关于c# - Azure SDK 2.0 中的 StartCopyFromBlob 需要几天时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com