私はASP.Net MVC(いずれかのVMまたはAzureのWebAppの上でホストされている)、Azureのファイルストレージに、認証のためのASP.Netアイデンティティプロバイダで構築されたソリューションを持っています。Azureのファイルストレージ:認証された直接ダウンロード
ソリューションは、サーバーからファイルのアップロードとダウンロードの多くが含まれます。ファイルがダウンロードされる前に
は、いくつかの認証は、最初のサーバー上で行わなければなりません。
これは、現在、次のように私の溶液中で実装されています。
- 署名-にダウンロードリンク/ボタンやHTTPリクエストをユーザーがクリックするサーバーに送信されます。
- ASP.Net MVC制御方法は、認証し、特定のユーザのためのダウンロードを許可します。
- コントローラメソッドは、Azureファイルストレージからファイルストレージからサーバーにファイルをダウンロードします。
- ファイルは、サーバーからログインユーザーにストリーム配信されます。
それは次のような欠点を有していることが上記のアプローチから気づいている:
- サーバリソースのかなりの量が、メモリ、ディスクI/O、処理能力を含むプロセス中に使い果たされます。
- それは内とWebサーバのうち、ネットワークトラフィックの多くを生成します。
- 上記の結果は、私の解決策は、私が何とかするファイルストレージから直接ダウンロードを確立することができれば 上記の多く
を回避することができるので、上記2点のかなり大きな価格ティアを必要とすることですWebサーバ/コントローラメソッドから要求が承認された後、クライアント/ユーザに送信されます。
解決策は、要求が承認されるとすぐに要求されたファイル(短いアクセス許可で)にSAS(共有アクセス署名)を生成し、クライアントを直接ダウンロードURLにリダイレクトすることですSASと
このアプローチを使用すべきではない理由があるのですか、それともより良いアプローチがありますか?
フィードバックありがとうございます。私は強制/自動ダウンロードを行う予定でしたが、IPアドレスACLについては考えていませんでした。私はこのオプションをAzureで達成できるかどうかを確かめるために調査し、その結果を元に戻します。 –
IP ACLは、SAS自体で利用可能になりました。詳細については、このリンクを参照してください:https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-shared-access-signature-part-1/ –
素晴らしい!それは仕事をするでしょう。ありがとう! –