首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储获取blobs

存储获取blobs
EN

Stack Overflow用户
提问于 2020-01-21 07:41:08
回答 1查看 1.6K关注 0票数 1

我的应用程序使用Azure存储块来将文件从远程存储下载到本地计算机。

它的工作原理:

  1. 机器获取带有URL (签名URL)的队列消息到。
  2. 发送GET来下载文件的应用程序。这是用HttpClient做的。
  3. 应用程序逻辑从那里继续。

以下是我下载文件的方式:

代码语言:javascript
复制
HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Get, signedUrl);
HttpClient.Timeout = TimeSpan.FromSeconds(120);
var response = await HttpClient.SendAsync(msg);
response.EnsureSuccessStatusCode();

我发现每天都有几次例外:

System.Threading.Tasks.TaskCanceledException:手术被取消了。-> System.IO.IOException:无法从传输连接读取数据:操作取消。-> System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16令牌应System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage请求( cancellationToken cancellationToken),( cancellationToken cancellationToken)在System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func3操作、上下文、CancellationToken CancellationToken、ExceptionPredicates shouldRetryExceptionPredicates、ResultPredicates1 shouldRetryResultPredicates, Func5 onRetryAsync、Int32 permittedRetryCount、IEnumerable1 sleepDurationsEnumerable, Func4 IEnumerable、Boolean )处的3动作、上下文、en22#、Boolean )

在这一点上,我必须澄清,这种行为发生在系统中传递的URL的0.1%。

我怀疑问题出在签名网址上。我发现在所有情况下签名的URL是正确的-我只是把它放在浏览器中,它是工作的。

现在,当我知道问题不是URL本身时,我想这可能是一个网络问题。因此,通过使用波莉,我添加了5次重试,每个重试之间都有指数延迟。最多重试5次。延迟公式- 3^n (其中n是重试次数)。在最坏的情况下,它将等待4分钟才能再次尝试.即使是现在-仍然是同样的错误。所有5次重试都已使用,但未下载该文件。

该怎么办呢?我还应该查什么?

EN

回答 1

Stack Overflow用户

发布于 2020-01-21 09:51:16

似乎是网络问题。我建议您使用下载blob。

代码语言:javascript
复制
// Blob SAS URL
string url = "https://storagetest789.blob.core.windows.net/devops/deploy.ps1?sp=r&st=2020-01-21T09:39:06Z&se=2020-01-21T17:39:06Z&spr=https&sv=2019-02-02&sr=b&sig=tyGX6wpgAooOZK2Po2ntukF0fGx3PosSNTgkLlVysrE%3D";
CloudBlockBlob blob = new CloudBlockBlob(new Uri(url));
Console.WriteLine(blob.DownloadText());

您还可以通过SDK方法下载到文件或流中。SDK可以处理所有的底层内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59836258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档