2

Azure でホストされている WCF サービスがあります。

Azure BLOB ストレージ (1.1G) に保持する Spatialite データベース ファイルがあります。圧縮すると500Kです。

サービスの開始時にローカル ストレージにコピーし、spatialite を使用してデータベース ファイルからさまざまな空間関数を実行したいと考えています。空間データは静的です。

Azure BLOB ストレージからローカル ストレージにファイルをコピーするためのコード スニペット (C#) を持っている人はいますか?

(また、このアプローチは理にかなっていると思います-そうですか?)

(また、ブロブ ストレージ用にファイルを圧縮する必要がありますか?)

ありがとう

編集: 最初の 2 つの応答に感謝します。いくつかのコードスニペットを使用することを望んでいました。どちらがより良いルートであるかについて、もう少し説明を加えることができます。すべてをコーディングするか、このブートストラップのアイデアを使用してください。

解決策: 保護されたすべての azure ファイルで機能するはずなので、SMARX を回答としてマークしていますが、ファイルは公開されている BLOB ファイルであるため、単純な Web アクセスを優先して、SMARX によって提案された CloudStorageAccount ルートをスキップしました。ただし、SMARX のアプローチを使用することに速度上の利点があるかどうかは疑問です。コメントをいただければ幸いです。

// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("MyLocalStorage");

WebClient webClient = new WebClient();
webClient.DownloadFile(blobUrl, localResource.RootPath + "mySpatialiteDB.sqlite");

注: webRole プロパティを介してローカル ストレージを構成する必要があります。

4

1 に答える 1

2

どうですか:CloudStorageAccount.Parse(...).CreateCloudBlobClient().GetBlobReference("path/of/blob").DownloadFile(RoleEnvironment.GetLocalResource("nameOfLocalResource").RootPath);

他のことをする前に、OnStart の RoleEntryPoint でそれを行いますか?

于 2011-10-06T22:57:34.327 に答える