Les données sont stockées dans une base de données, documents, certificats et images compris, cela nous a amené à utiliser PostgreSQL (et non MySQL) pour ses possibilités de streaming sur les blobs.
Exemple sous debian :
apt install postgresql
dans /etc/postgresql/<XX>/main/pg_hba.conf ajout de :
host all all 127.0.0.1/32 password
Redémarrage de postgresql
systemctl restart postgresql.service
Création de la base :
su postgres psql create database esupsignature; create USER esupsignature with password 'esup'; grant ALL ON DATABASE esupsignature to esupsignature;
L'application a été développée avec la fonction de lecture/écriture des blobs dans une transaction par streaming de PostgreSQL. CF https://www.postgresql.org/docs/11/static/lo.html
Pour une bonne gestion des blob de cette application, il faut ajouter dans PostgreSQL un trigger sur la base de données sur la table big_file. La fonction lo_manage est nécessaire ici.
Sous debian :
apt-get install postgresql-contrib
Puis la création de l'extension lo se fait via un super-user:
psql \c esupsignature CREATE EXTENSION lo;
Après cette étape, il faut passer directement à la phase Sources et configuration. La suite se passera après le premier démarrage de l'application
Et enfin ajout du trigger, ceci après avoir démarré une première fois esup-signature pour que les tables soit crées :
CREATE TRIGGER t_big_file BEFORE UPDATE OR DELETE ON big_file FOR EACH ROW EXECUTE PROCEDURE lo_manage(binary_file);