3

ブラウザを介してファイルをアップロードおよびダウンロードする機能を提供する必要があるモジュールを1つ作成しています。

要件を達成するためのアプローチを探してみました。

DBサーバー:Oracle 10 gフレームワーク:Spring&Hibernateフロントエンド:JSP

今私は2つのオプションがあります

  1. ファイルをoracle(データ型blob)データベースにインポートし、BufferedOutputStreamを使用して同じファイルを取得します

  2. すべてのファイルを保存するためのフォルダをサーバー上に作成します。ユーザーはその場所に画像をアップロードします。データベースには、そのファイルの読み取り中に使用されるそのファイルの絶対パスを格納するための1つの列があります

たとえば、ユーザーがimageABC.jpgをアップロードすると、アプリケーションはそのファイル(更新された名前unique_id.jpeg)をデータベースパス列のディレクトリD:\ DIS21 \ Storage \にアップロードし、D:\ DIS21 \ Storage \unique_id.jpegによって更新されます。

ファイルの読み取り中に、アプリケーションはパスD:\ DIS21 \Storage\の下のファイルを読み取ります。

私はアプローチとセキュリティの側面について少し混乱しています。誰かが私を同じように導くことができますか..??

4

1 に答える 1

1

どちらのアプローチも機能します。オプション1の欠点は、データベースに余分なI / O圧力がかかることですが、システムの負荷によっては、それが問題にならない場合があります。

オプション2の主な問題は、水平方向のスケーリングが妨げられることです。つまり、すべてのファイルをある種のネットワークファイル共有に移動しないと、使用量が増えるとサーバーを追加できなくなります。繰り返しますが、これによりネットワークとI / Oのオーバーヘッドが追加されますが、問題がある場合とない場合があります。

私はデータベースにファイルを保存する多数のサイトを構築しました。優れたデータ設計を適用する限り(主にblobを独自のテーブルに分割する必要があります)、問題はありません。

于 2012-04-24T07:43:38.083 に答える