Comment paramétrer le composant de stockage de documents ?

Deux modalités de stockage des documents dans vos applications

Il est possible de stocker des documents ou des images dans une application de gestion NodeJS générée par Newmips de deux manières différentes selon vos besoins.

En effet, on peut utiliser les champs de type Fichier ou les champs de type Image sur les entités. Par exemple, la photo d’un stagiaire et sa fiche descriptive personnelle seront plutôt des documents nommés explicitement dans les données de l’entité Stagiaire.

On peut aussi souhaiter rajouter une zone de stockage en masse de pièces documentaires auquel cas on ajoute à une entité un composant de stockage de documents ( localfilestorage ).

Par défaut, les documents sont gérés comme suit :

  • insertion en base de données du nom du fichier stocké physiquement ;
  • stockage physique du fichier dans un répertoire dont l’emplacement est défini dans la variable locafilestorage du fichier config/global.js
  • pour les images, génération d’une vignette portant le même nom que le fichier original et stockée physiquement dans le sous-dossier défini dans la variable thumbnail.folder.

 

Paramétrage

Le fichier de configuration global.js contient une variable localstorage qui permet de gérer l’emplacement du stockage physique des pièces.

ocalstorage: __dirname + "/../upload/",
thumbnail: {
folder: 'thumbnail/',
height: 30,
width: 30,
quality: 60
},

Le contenu de la variable « localstorage » peut être remplacé par un chemin d’accès à tout autre répertoire en chemin absolu ou relatif par rapport à la racine de l’application ( __dirname ).

Concernant le répertoire « thumbnail », le nom du sous répertoire peut être modifié mais il sera toujours situé dans le répertoire indiqué par la variable « localstorage ».

La taille et la qualité de la vignette peuvent être redéfinie également.

Attention, ce paramétrage vaut pour toute l’application.

 

Principe de stockage

Les documents chargés via le composant « localfilestorage » sont classés physiquement dans un sous-répertoire nommé du nom de l’entité ( e_trainee dans notre exemple ) puis un sous-dossier créé pour chaque instance d’objet ( 2 dans notre exemple ) et enfin un sous-dossier nommé du nom du composant ( pieces_1004 dans notre exemple ).

Chaque fichier est stocké dans ce dossier : son nommage le rend unique.

Les documents chargés via les dropzones unitaires pour les champs de type fichier ou image sont stockés dans des sous-répertoires par journée d’upload créés directement sous le répertoire du nom de l’entité.

 

Enfin, les documents sont stockés avec un renommage permettant leur unicité.