J'ai une webapp java qui doit télécharger des fichiers via http, puis les stocker sur le serveur. Les fichiers doivent être associés à des enregistrements spécifiques dans une base de données Oracle, il y aura donc une table dans la base de données stockant la référence à l'enregistrement associé et une référence au fichier, avec d'autres données descriptives telles que le titre, etc. pour cette table semblent être:Comment écrire un fichier téléchargé sur le disque à l'aide de l'alias de répertoire Oracle et des objets BFILE?
- stocker le fichier en tant que blob
- magasin une référence BFILE au fichier
- stocker une chaîne contenant le chemin du fichier
Nous préférerions pour stocker le fichier en dehors de la base de données, de sorte que nous ne serons pas le stocker comme un BLOB. Les administrateurs de base de données ont indiqué que leur option préférée est de stocker la référence sous forme de fichier BFILE. L'objet oracle.sql.BFILE permet d'accéder à un InputStream pour lire le fichier, mais pas de façon évidente d'y écrire.
Quelle est la meilleure façon d'écrire les données de fichier sur le disque lorsque la seule référence au répertoire de stockage est l'alias d'annuaire Oracle?
Nous avons décidé aussi simple que cela java.io était la meilleure façon d'écrire dans le fichier, ce qui signifie que le répertoire de stockage doit être disponible pour les serveurs d'applications Web en tant que support. Puisque le répertoire était disponible pour la webapp de toute façon, nous avons alors décidé que le BFILE n'était pas nécessaire et juste pour stocker le nom de fichier dans la base de données à la place.
Les raisons derrière "Nous préférons stocker le fichier en dehors de la base de données" sont largement discutées dans http://stackoverflow.com/questions/561447/store-pictures-as-files-or-in-the-database -pour une application Web –