2

WindowsAzureをバックエンドとして使用するWPFアプリケーションがあります。SQL Azureを使用して、WCFサービスを介してWPFアプリケーションからアクセスされるデータを格納します。サーバー側でバイナリファイル(画像など)を保存できるようにする必要があり、これらのファイルを保存するための最良の方法は何か疑問に思います。ファイルをSQLデータベースに入れることはできますが、これが推奨されるかどうかはわかりません。約2000個のファイルが保存されると仮定します(合計サイズは約1GB)。これらのファイルは頻繁にアクセスされます(できればクライアントにキャッシュされます)。

助言がありますか?

4

2 に答える 2

5

@Blamが指摘したように、Blob Storageは、大きなバイナリオブジェクトを格納するためのはるかに優れた方法です。各blobには、のようなURIがありますhttps://mystorage.blob.core.windows.net/somecontainer/someblob.jpg。各blobは最大200GBです。BLOBのURIは、関連するメタデータとともにSQLAzureに簡単に保存できます。

次に、WCFサービスを介して画像を返すか、直接アクセスを提供するかを選択できます。前者の場合、基本的には、WCFサービス実装からblobストレージを呼び出して、blobを取得し、それをWCF応答で返します。

後者の場合、少し注意が必要です。ブロブをパブリックにするかプライベートにするかを選択できます。パブリックBLOBは、ロゴ、CSS、および表示にユーザー権限を必要としないその他の情報に最適です。プライベートBLOBでは、ストレージアカウントキーを使用する必要があります(決して配布しないでください)。ただし、共有アクセス署名と呼ばれる機能を使用する、クエリ文字列に特別なハッシュを含むURLを指定して、一時的なアクセス(最大1時間)を提供できます。基本的なトレードオフ:バイナリファイルのダウンロードにWCFサービスを使用する場合、コードは他のWCFサービスと同じように機能しますが、負荷の増加をサポートするためにAzureVMの複数のインスタンスにスケールアウトする場合があります。共有アクセス署名を使用する場合は、URLに基​​づいてバイナリファイルを取得するようにWPFアプリを変更する必要があります。ただし、これによりWCFサービスの負荷が軽減されます。これは、Blob Storageに直接アクセスしてバイナリコンテンツ(Windows Azureによって管理される大規模なマルチテナントストレージシステム)をダウンロードするためです。

Windows Azureストレージの料金については、こちらをご覧ください。1 GBあたり13セント未満で、SQLAzureよりも大幅に安価です。

于 2012-05-18T12:27:41.550 に答える
1

Azureブロブ。SQL Azureは、BLOBに比べて高価です。

 http://www.windowsazure.com/en-us/home/features/storage/
于 2012-05-18T11:41:55.073 に答える