gpt4 book ai didi

c# - Azure BlobWriteStream 客户端无法在指定超时内完成操作

转载 作者:太空狗 更新时间:2023-10-30 00:48:39 27 4
gpt4 key购买 nike

我正在尝试将 300GB(流式)数据上传到 Azure Blob 存储。我用来执行上传的代码如下所示:

var stream = blob.OpenWrite();
[...]
// the buffer is filled in with 128KB chunks of data from a larger 300GB file
stream.Write(buffer, offset, count);

上传大约 8 小时后,我收到以下错误消息:

at Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End() in c:\Program Files x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Util\StorageAsyncResult.cs:line 77 at Microsoft.WindowsAzure.Storage.Blob.BlobWriteStream.EndWrite(IAsyncResult asyncResult) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\BlobWriteStream.cs:line 211

ErrorMessage = The client could not finish the operation within specified timeout.

顺便说一下,我的上传速度约为 2MB/s(可能与超时消息有关)。任何帮助将不胜感激。

最佳答案

根据您的描述和错误信息,我建议您可以尝试更改BlobRequestOptions.MaximumExecutionTime的值如果您不希望它很快超时,则可以更长。

我建议您还可以启用存储诊断日志来查看存储分析日志和指标,以了解延迟是服务器延迟还是端到端延迟。有关监控、诊断和排除 Microsoft Azure 存储故障的更多详细信息,您可以引用此 article .

此外,我建议您可以尝试使用 Microsoft Azure 存储数据移动库将大文件上传到 Blob 存储。

这是专为高性能上传、下载和复制 Azure 存储 Blob 和文件而设计的。您可以从 VS nuget 包管理器安装它。

更详细的使用方法,可以引用这个article .

这是一个例子:

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
"connectstring");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference("foobar");
blobContainer.CreateIfNotExists();
string sourcePath = @"yourfilepath";
CloudBlockBlob destBlob = blobContainer.GetBlockBlobReference("foobar");

TransferManager.Configurations.ParallelOperations = 64;

SingleTransferContext context = new SingleTransferContext();
context.ProgressHandler = new Progress<TransferStatus>((progress) =>
{
Console.WriteLine("Bytes uploaded: {0}", progress.BytesTransferred);
});

var task = TransferManager.UploadAsync(
sourcePath, destBlob, null, context, CancellationToken.None);
task.Wait();

它将自动将每个 block 发送到 azure 存储,如下所示:

enter image description here

关于c# - Azure BlobWriteStream 客户端无法在指定超时内完成操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292319/

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