OperationContext 使用 (Microsoft.WindowsAzure.Storage)

Posted

技术标签:

【中文标题】OperationContext 使用 (Microsoft.WindowsAzure.Storage)【英文标题】:OperationContext usage (Microsoft.WindowsAzure.Storage) 【发布时间】:2021-08-13 10:25:34 【问题描述】:

我要从 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 实例? 为什么它是此方法的必需参数?看来我不明白为什么这么有必要。

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于OperationContext 使用 (Microsoft.WindowsAzure.Storage)的主要内容,如果未能解决你的问题,请参考以下文章

OperationContext

从 C# 中的 OperationContext 读取 JSON 格式的请求内容

Microsoft launches Open Application Model (OAM) and Dapr to ease developments in Kubernetes and micr

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

DotNetOpenAuth 和 ResourceServer 服务 https 配置

WCF Cookie处理