Objectif
Écrire dans le système de fichier du serveur, les fichiers stockés sous forme de binaire dans PotgreSQL. La méthode est générique et fonctionne si de nouveaux formulaires sont créés ou si certains sont supprimés.
Write to the server’s file system, files stored as binary in PotgreSQL. The method is generic and works if new forms are created or if some are deleted.
Ressources
https://github.com/opendatakit/aggregate/issues/164#issuecomment-347390275
https://stackoverflow.com/questions/38900823/postgres-find-all-rows-in-database-tables-matching-criteria-on-a-given-column
Principe
Une table liste les objets binaires stockés dans la base de données ODK (toutes les tables dont le nom se termine par « BLB » et ne commence par par un « » (tables système d’Aggregate)
Elle stocke aussi le nom que nous souhaitons donner au fichier (à partir de champs de métadonnées d’Aggregate « _LAST_UPDATE_DATE » et « UNROOTED_FILE_PATH » Et enfin un entier mis à 1 quand le fichier a été généré dans sur le disque
Pour générer les fichiers nous faisons appel à la fonction lo_export
Les fichiers sont créés dans un répertoire sur lequel postgres à le droit d’écrire. Ce répertoire est servi sur le web par un serveur de fichier (minio)
Les téléphones actuels peuvent facilement créer des images de 15 Mo… L’option proposée dans xlsform permettant de réduire la talle des images en définissant un nombre maximum de pixel pour le plus grand côté de l’image sera intéressante : https://docs.opendatakit.org/form-question-types/?highlight=select%20one#scaling-down-images
A table lists the binary objects stored in the ODK database (all tables whose name ends with « BLB » and does not begin with a « » (Aggregate system tables) It also stores the name we want to give to the file (from Aggregate’s « _LAST_UPDATE_DATE » and « UNROOTED_FILE_PATH » metadata fields) And finally an integer set to 1 when the file was generated in on the disk
To generate the files we use the lo_export function
Files are created in a directory on which postgres have the right to write. This directory is served on the web by a file server (minio)
Current phones can easily create 15MB images… The option offered in xlsform to reduce image’s size will be interesting : https://docs.opendatakit.org/form-question-types/?highlight=select%20one#scaling-down-images