http経由でファイルをアップロードしてサーバーに保存する必要があるJava Webアプリケーションがあります。ファイルは Oracle データベース内の特定のレコードに関連付ける必要があるため、関連付けられたレコードへの参照、ファイルへの参照、およびタイトルなどの他の説明データを格納するテーブルがデータベース内に存在します。オプションこのテーブルは次のように表示されます。
- ファイルを BLOB として保存する
- ファイルへの BFILE 参照を格納します
- ファイルへのパスを含む文字列を保存します
ファイルをデータベースの外に保存したいので、BLOB として保存しません。DBA は、参照を BFILE として格納することを推奨するオプションであると述べています。oracle.sql.BFILE オブジェクトは、ファイルを読み取るための InputStream へのアクセスを提供しますが、それに書き込む明白な方法はありません。
ストレージ ディレクトリへの唯一の参照が Oracle ディレクトリ エイリアスである場合、ファイル データをディスクに書き戻す最良の方法は何ですか?
シンプルな java.io がファイルへの書き込みに最適な方法であると判断しました。つまり、ストレージ ディレクトリはマウントとして Web アプリケーション サーバーで使用できる必要があります。いずれにせよ、ディレクトリは webapp で使用できるため、BFILE は不要であると判断し、代わりにファイル名をデータベースに格納するだけにしました。