即使使用 WaitForCompletionAsync,也无法让 Azure Blob 客户端 StartCopyFromUriAsync 完成

发布于 2025-01-20 13:26:07 字数 673 浏览 3 评论 0原文

我正在编写一个控制台应用程序,用于从数据迁移项目的 Quickbooks API 导出“Attachables”。我已尝试使用以下代码,并使用 ,但没有取消令牌。我要么收到异常,要么收到错误,指出“操作尚未完成。”。 BlobCopyStatus 处于挂起状态,直到引发异常。

我正在尝试下载超过 16k 个文件,使用一些类似的代码可以正常下载 15k+ 个文件。我一直在尝试解决无法下载片段的原因。

我似乎找不到很多例子。有什么想法吗?

CancellationTokenSource cToken = new CancellationTokenSource();
cToken.CancelAfter(30000);
        
var status = await blobClient.StartCopyFromUriAsync(sourceUri, null, cToken.Token);

if (!status.HasCompleted)
{
    var props = blobClient.GetProperties();
    _log.LogInformation($"blob copy status: {props.Value.BlobCopyStatus}");

    await status.WaitForCompletionAsync();
}

return status;

I'm writing a console app to export "Attachables" from the Quickbooks API for a data migration project. I've tried the code below with and without the cancellation token. I either get an Exception or get an error stating that "The operation has not completed yet.". The BlobCopyStatus is pending until the exception is thrown.

I'm trying to download over 16k files, and 15k+ worked just fine using some similar code. I've been trying to troubleshoot why a segment can't be downloaded.

I can't seem to find many examples. Any ideas?

CancellationTokenSource cToken = new CancellationTokenSource();
cToken.CancelAfter(30000);
        
var status = await blobClient.StartCopyFromUriAsync(sourceUri, null, cToken.Token);

if (!status.HasCompleted)
{
    var props = blobClient.GetProperties();
    _log.LogInformation(
quot;blob copy status: {props.Value.BlobCopyStatus}");

    await status.WaitForCompletionAsync();
}

return status;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧竹 2025-01-27 13:26:07

尝试

var status = await blobClient.StartCopyFromUriAsync(sourceUri, null, cToken.Token); 
await status.WaitForCompletionAsync();

Try

var status = await blobClient.StartCopyFromUriAsync(sourceUri, null, cToken.Token); 
await status.WaitForCompletionAsync();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文