我有一个 java webapp,它需要通过 http 上传文件,然后将它们存储在服务器上。这些文件需要与 Oracle 数据库中的特定记录相关联,因此数据库中将有一个表存储对关联记录的引用、对文件的引用以及其他描述性数据,例如标题等。选项因为这张表似乎是:
- 将文件存储为 BLOB
- 存储对文件的 BFILE 引用
- 存储一个包含文件路径的字符串
我们更愿意将文件存储在数据库之外,因此我们不会将其存储为 BLOB。DBA 表示他们的首选选项是将引用存储为 BFILE。oracle.sql.BFILE 对象提供对 InputStream 的访问以读取文件,但没有明显的写入方式。
当对存储目录的唯一引用是 Oracle 目录别名时,将文件数据写回磁盘的最佳方法是什么?
我们认为简单的 java.io 是写入文件的最佳方式,这意味着存储目录必须作为挂载可供 Web 应用程序服务器使用。由于该目录无论如何都可用于 webapp,因此我们决定不需要 BFILE,而只是将文件名存储在数据库中。