2017-10-02 10 views
-1

私は約6つの設定ファイル(xmlまたはjson)をAzureに保存したいのですが、Windowsクライアントアプリケーションで使用します。私はそれらをブロブストレージに保存し、次のコードを使用してダウンロードする予定です:紺碧のブロブストレージファイルをキャッシュする方法

設定ファイルは頻繁に変更されません。毎回ダウンロードされないようにファイルをローカルにキャッシュする方法はありますか?

これを行うには良い方法がありますか?私が使っているはずの他のAzureサービス?

+0

私があなたの質問を完全に理解しているかどうかはわかりませんが、ブロブが変更されたことはどうやって知りますか?また、あなたの設定ファイルは公開ブロブまたはプライベートに保存されますか? 「他のAzureサービス」にまでは、あなたが探しているものを正確には明らかにしません。 –

答えて

2

設定ファイルは頻繁に変更されません。毎回ダウンロードされないようにファイルをローカルにキャッシュする方法はありますか?私の理解パー

、あなたは識別子として使用することができ、それは、更新操作があなたのBLOBファイル上で実行されるたびに更新されるあなたのBLOBファイルのETagをプロパティを使用することができます。

Windowsクライアントアプリケーション内の設定ファイルをロードする前に、ローカル側からETagをチェックして、サーバー側の関連値と比較することができます。ETagが一致しない場合は、新しい側の設定ファイルを読み込みます。

あなたは、Windowsのクライアントアプリケーションを使用しているので、あなたは、あなたがAzure Storage Client Library for .NETを使用して、コードをたどることができ、公開塊だけたり、コンテナに対する制限された権限でSASトークンを生成するための読み取りアクセスをにコンテナのパブリックアクセスレベルを設定することができます

//access container with public access level to blobs 
//var container = new CloudBlobContainer(new Uri("https://{storage-name}.blob.core.windows.net/{container-name}")); 

//access container with SAS token 
var container = new CloudBlobContainer(new Uri("https://{storage-name}.blob.core.windows.net/{container-name}?{SAS-token}")); 

CloudBlob blockBlob = container.GetBlobReference("setting.json"); 
blockBlob.FetchAttributes(); 
string etag=blockBlob.Properties.ETag; 

設定ファイルをダウンロードするWebClientを使用して、あなたはファイル内のEtag値を設定できます。次のように下のブロブサービスからETagプロパティを取得しますローカル設定ファイルの名前(例:{filename}-{etag}.json)。

さらに、Azure Storage Explorerを活用してストレージリソースを管理することもできます。さらに、ContentMD5プロパティを利用することもできますが、いくつかの制限があります。詳細はhereを参照してください。

関連する問題