gpt4 book ai didi

java - 如何使用 Oracle 目录别名和 BFILE 对象将上传的文件写入磁盘?

转载 作者:行者123 更新时间:2023-12-02 08:37:30 25 4
gpt4 key购买 nike

我有一个java webapp,它需要通过http上传文件,然后将它们存储在服务器上。这些文件需要与 Oracle 数据库中的特定记录相关联,因此数据库中将有一个表存储对关联记录的引用、对文件的引用以及其他描述性数据(例如标题等)。该表似乎是:

  • 将文件存储为 BLOB
  • 存储对文件的 BFILE 引用
  • 存储包含文件路径的字符串

我们更愿意将文件存储在数据库之外,因此我们不会将其存储为 BLOB。 DBA 表示他们的首选是将引用存储为 BFILE。 oracle.sql.BFILE 对象提供对 InputStream 的访问以读取文件,但没有明显的写入方法。

当对存储目录的唯一引用是 Oracle 目录别名时,将文件数据写回磁盘的最佳方法是什么?

<小时/>

我们认为简单的 java.io 是写入文件的最佳方式,这意味着存储目录必须可供 Web 应用程序服务器作为挂载使用。由于该目录无论如何都可供 Web 应用程序使用,因此我们决定不需要 BFILE,只需将文件名存储在数据库中即可。

最佳答案

根据Oracle JDBC Developers Guide - 14.6 Working with BFILEs :

  • BFILEs are read-only. You cannot insert data or otherwise write to a BFILE.
  • You cannot use JDBC to create a new BFILE. They are created only externally.

因此,您似乎需要一个单独的工具/方法来将数据上传到 Oracle 存储目录,这可能使 BFILE 对于您的场景来说是一个糟糕的选择。

关于java - 如何使用 Oracle 目录别名和 BFILE 对象将上传的文件写入磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com