2016-06-28 1 views
1

私がビルドしているアプリは、azureにいくつかのblockblobをダウンロードしてアップロードします。私は現在v6.1を使用しており、すべて正常に動作します。しかし、次の問題のためにv7にアップグレードすることはできません:Azureストレージ、CloudBlobClientを使用しないBlobRequestOptionsを使用

私は多分間違っているかもしれませんが、接続文字列を保存したくないので、アプリケーションに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)); 

これは非常にうまく動作しますが、ブロブ.ServiceClient.ParallelOperationThreadCount = 10;私がまだ見たことから、BlobRequestOptionsという項目は、私が(多分悪い理由で)使用しないことを決めたCloudBlobClientでのみ定義できます。

私はさまざまなオプションを検討していた、もう1つは、最良であるべきでいくつかのアドバイスを探していました: 1 - 奇跡が起こると私はAzureストレージAPI v6.1では に滞在CloudBlobClient 2 - なしBlobRequestOptionsを使用することができます3 - 私は私のMVC WebサービスからCLoudBLobClientを取得し、私はそれ 、4-は誰もが同じように私はネット

おかげでCloudBlobClientを使用することができ、セキュリティのリークではないアプリで接続文字列を持って使用します!

答えて

2

Azure Storage Client Libraryで要求をトリガできるすべてのメソッド呼び出しには、RequestOptionを受け入れるオーバーロードがあります。たとえば、CloudBlob.BeginDownloadToStreamのオーバーロードはCloudBlob.BeginDownloadToStream Method (Stream, AccessCondition, BlobRequestOptions, OperationContext, AsyncCallback, Object)です。

+0

BeginUploadFromStreamを除いて、私が実装したすべての紺色の方法を調べました。ありがとう! –

+1

さらに、ServiceClientのデフォルトのすべては、ServiceClientのデフォルトのrequestOptionsオブジェクトを使用して非推奨になりました。リクエストごとにRequestOptionsオブジェクトを渡したくない場合は、blob.ServiceClient.DefaultRequestOptions.ParallelOperationThreadCountでデフォルト値を設定することができます –

関連する問題