Azure存储,使用不带CloudBlobClient的BlobRequestOptions

时间:2016-06-28 09:24:21

标签: c# azure security azure-storage

该应用程序我构建下载并在天蓝色上传一些blockblobs。我目前正在使用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

谢谢!

1 个答案:

答案 0 :(得分:3)

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