2016-11-20 4 views
0

アップロードするすべてのファイルがMIMEタイプのものでなければならないというシナリオがあります。使用する場合は、それらを解読する必要があります。静的コンテンツのダウンロードのためのメモリストリームとファイルストリーム

私は要求されたファイルを復号化し、そのファイルを一時的な場所に保存しました。 私の解読方法は、暗号化されたファイルストリームを読み取ることによってファイルストリームに書き込みます。

暗号化されたファイルストリームをメモリストリーム に保存するアルゴリズムを変更し、ファイルストリームに書き込んでそのファイルをダウンロードするのではなく、メモリストリームから直接ダウンロードする必要があります。

この場合、より良いファイルストリームまたはメモリストリームになるパフォーマンスの面で。

私は、複数の巨大なファイルが複数のユーザーによって要求された場合、100種類の異なるユーザーが100種類のファイルを要求すると考えています。この場合、メモリが使い果たされ、私たちはいくつかの不都合な問題に直面する可能性があります。

実装する必要があるのはどれですか。

+0

代わりにEFSのようなものを使用することを検討しましたが、ディスク上の暗号化がIOチェーンで上位に処理されていますか?そうすれば、ファイル暗号化でアプリケーションロジックを気にする必要はありません。 – Dai

+0

@Dai私はEFSを認識していません。情報をありがとう私はこれについてsysadminと相談し、私のシナリオの可能性を探します。 –

答えて

0

あなたは出力のためにNetworkStreamに直接ストリーミングを考えましたか?あなたにはメモリとディスクスペースは必要ありません。中間データとしてBufferedStreamのデータをバッファリングすると、より高いパフォーマンスが期待される場合。

直接またはバッファリングされたストリーミングがオプションではない場合、正解は要件によって異なります。ファイルのサイズと予想される要求数を知る必要があります。あなたのWebサーバのメモリがそれを処理でき、追加のパフォーマンスが必要な場合は、それを実行してください。それ以外の場合は、ハードドライブにバッファリングする必要があります。覚えておいてください:あなたは十分なの性能ではなく、の完璧なのパフォーマンスが必要です。

+0

'NetworkStream'は私にとってはオプションではありません。 現在、制限されたサイズのファイル(50MB未満)のみを許可しており、1時間あたり100リクエスト未満のファイルが必要です。この場合、私たちのサーバーはこれを処理できます。したがって、私はMemoryStreamに行く必要があります。 –

関連する問題