【问题标题】:Azure Storage, using BlobRequestOptions without CloudBlobClientAzure 存储,使用不带 CloudBlobClient 的 BlobRequestOptions
【发布时间】:2016-10-30 13:03:58
【问题描述】:

我正在构建的应用程序会在 azure 上下载并上传一些块块。我目前正在使用 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 Storage API v6.1 3- 我从我的 MVC Web 服务获得一个 CLoudBLobClient 并使用它 4- 在应用程序中有一个连接字符串不是安全漏洞,所以我可以像网络上的每个人一样使用 CloudBlobClient

谢谢!

【问题讨论】:

    标签: c# azure security azure-storage


    【解决方案1】:

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

    【讨论】:

    • 查看了我实现的每个 azure 方法,除了 BeginUploadFromStream。谢谢!
    • 此外,ServiceClient 上的所有默认值都已弃用,取而代之的是 ServiceClient 的默认 requestOptions 对象。如果您不想在每个请求中传递 RequestOptions 对象,您仍然应该能够使用 blob.ServiceClient.DefaultRequestOptions.ParallelOperationThreadCount 设置默认值
    猜你喜欢
    • 2017-08-12
    • 2021-01-09
    • 2011-10-18
    • 2019-02-05
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2016-12-27
    相关资源
    最近更新 更多