У меня есть веб-приложение Java, которое должно загружать файлы через http, а затем сохранять их на сервере. Файлы должны быть связаны с конкретными записями в базе данных Oracle, поэтому в базе данных будет таблица, хранящая ссылку на связанную запись и ссылку на файл, а также другие описательные данные, такие как заголовок и т. Д. Опции для этой таблицы выглядят так:
- сохранить файл как BLOB
- сохранить ссылку BFILE на файл
- сохранить строку, содержащую путь к файлу
Мы бы предпочли хранить файл вне базы данных, поэтому мы не будем хранить его как BLOB. Администраторы баз данных указали, что их предпочтительным вариантом является сохранение ссылки в виде BFILE. Объект oracle.sql.BFILE обеспечивает доступ к InputStream для чтения файла, но не имеет очевидного способа записи в него.
Каков наилучший способ записи данных файла на диск, если единственной ссылкой на каталог хранения является псевдоним каталога Oracle?
Мы решили, что простой java.io - лучший способ записи в файл, а это означает, что каталог хранилища должен быть доступен для серверов веб-приложений в качестве монтирования. Так как каталог в любом случае был доступен для веб-приложения, мы решили, что BFILE не требуется, и вместо этого просто сохраняем имя файла в базе данных.