微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OperationContext 用法Microsoft.WindowsAzure.Storage

如何解决OperationContext 用法Microsoft.WindowsAzure.Storage

我要从 Azure Blob 存储下载 Blob 进行流式传输,我需要指定重试策略和超时。这就是我使用 BlobRequestOptions(WindowsAzure.Storage NuGet 包)实例来指定所有这些设置的原因。我还想使用异步方法 DownloadToStreamAsync,它需要传递一些额外的参数(AccessCondition、OperationContext)。我的代码

var selfieBlob = new CloudBlockBlob(GetBlobUri(requestedUrl),_credentials);
await selfieBlob.DownloadToStreamAsync(
    targetStream,AccessCondition.GenerateEmptyCondition(),_blobOptions,new OperationContext());

问题:

  • 我应该每次都创建一个 OperationContext 的新实例吗?
  • 为什么它是此方法的必需参数?似乎我不明白为什么这么必要。

解决方法

您可以使用 DownloadToStreamAsync 调用方法 default(OperationContext)。这与 DownloadToStreamAsync 的其他重载所做的相同。检查here

await selfieBlob.DownloadToStreamAsync(
    targetStream,default(AccessCondition),_blobOptions,default(OperationContext));

它通常用于记录相关性。检查 ExcecuteAsync 方法实现 here

,

关于 OperationContext 参数,@user1672994 的回答是正确的。

参考CloudBlob.DownloadToStreamAsync Method's description,你就知道为什么需要参数AccessCondition了。如果您没有条件限制,您可以将其设置为 null

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。