c# - Azure 存储,使用 BlobRequestOptions 而不使用 CloudBlobClient

标签 c# azure security azure-storage

我正在构建的应用程序会在 azure 上下载和上传一些 block blob。我目前使用的是 v6.1,一切正常。但由于以下问题,我无法升级到 v7:

我可能完全错了,但我决定不在我的应用程序中使用 CloudBlobClient,因为我不希望它存储连接字符串。 相反,我要上传/下载的容器是通过 Web 服务提供的 SAS URI 启动的,因此我的实际(和缩短的)下载工作流程如下:

//jsonstring contains a SAS URI provided by a web service
var jsonString = await Response.Response.Content.ReadAsStringAsync();
CloudBlobContainer cloudContainer = new CloudBlobContainer(new Uri(jsonString.Replace('"', ' ').Trim()));

ICloudBlob blob = cloudContainer.GetBlockBlobReference(item.blobName);
await blob.FetchAttributesAsync();
blob.ServiceClient.ParallelOperationThreadCount = 10;

asyncresult = m_Blob.BeginDownloadToStream(pstream, blobTransferCompletedCallback, new BlobTransferAsyncState(m_Blob, pstream));

这工作得很好,但是 blob.ServiceClient.ParallelOperationThreadCount = 10;已被弃用,而且据我所知,取代项 BlobRequestOptions 只能在 CloudBlobClient 上定义,我决定(可能出于不好的原因)不使用它。

我正在考虑我的各种选择,并正在寻找一些关于哪一个应该是最好的建议: 1-奇迹发生了,我可以在没有 CloudBlobClient 的情况下使用 BlobRequestOptions 2-我继续使用 Azure 存储 API v6.1 3-我从 MVC Web 服务获取 CLoudBLobClient 并使用它 4- 在应用程序中拥有连接字符串并不是安全漏洞,因此我可以像网上的每个人一样使用 CloudBlobClient

谢谢!

最佳答案

每个可以在 Azure 存储客户端库中触发请求的方法调用都有一个接受 RequestOption 的重载。例如,CloudBlob.BeginDownloadToStream 具有重载: CloudBlob.BeginDownloadToStream Method (Stream, AccessCondition, BlobRequestOptions, OperationContext, AsyncCallback, Object) .

关于c# - Azure 存储,使用 BlobRequestOptions 而不使用 CloudBlobClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38072202/

相关文章:

java - JDBC MS SQL Server Kerberos 身份验证

c# - WCF 自定义授权

c# - .NET6 中具有优先级队列的 Parallel.ForEach

spring-boot - 无法从 KeyCloak 获取访问 token

security - 如何在弹性云上进行IP过滤

Azure 应用程序见解显示 Node js 应用程序的重复日志条目

c# - Entity Framework ,带有 dispose 方法的 UnitofWork 模式

c# - 将 datetime 解析为具有英语文化的月日时,仍将其解析为土耳其语

azure - 如何使用 Logic App 将 blob 从一个容器复制到另一个容器

visual-studio - 将启动脚本添加到 Azure Web 角色 - "copy to output directory"丢失