Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Prétraitement et mise à jour automatisée des images préparées

De AJLSM
Aller à la navigation Aller à la recherche

Introduction

Un nouveau script permet de générer automatiquement l'ensemble des versions des images préparées. Il est aussi capable de mettre à jour les images préparées lorsque l'image originale change.

Ce script est disponible sur le SVN à l'emplacement @pleade-libre-sdx-2.5/script-pre-traitement/ImagePretraitement/ImagePretraitement.jar


Notice :
Sur les serveurs en production, le script est toujours programmé via le crontab de l'utilisateur administrateur de Pleade. Cette information est importante pour pouvoir trouver l'emplacement des log dans n'importe quel serveur..

Principe de fonctionnement

Il s'agit d'un script java qui se lance avec la commande java -jar (compatibilité java >= 6). Pour l'automatiser complètement, il faut l'enregistrer dans le crontab.

Le script offre les fonctionnalités ci-dessous:

  • Création des versions miniature (60x60), vignette (300x300) default (2500x2500) et hidef (taux de compression 45%).
  • Regénération des images pré-taritement dont l'image originale a été mise à jour.
  • Possibilité d'utiliser vips ou imageMagick (par défaut) pour le traitement.
  • Possibilité de supprimer les images préparées pour lesquels l'image originale n'existe plus.
  • Création et journalisation des log. Possibilité de spécifier le nombre de jours de log à conserver

Exécution du script

Le script se lance de cette façon :

java -jar imagesPretraitement.jar <python> '<racines>' <pretrait> '<formats>' <vips> <delete> <logFile> <nbDaysForLog>

* <python> : emplacement absolue du script python plus. Exemple: /home/mdia/pretraitement_images_plus.py
* <racines> : entre cote, la liste des racines d'images séparée par ; . Exemple : '/home/test-images;/home/mdia/test-images2'
* <pretrait> : emplacement absolue du répertoire image préparées. Exemple : /home/mdia/test-images-preparees
* <formats> :  entre cote, la liste des formats d'images préparées à générer séparée par ; . Exemple : 'default;vignette;hidef'
* <vips> : si true travail avec vips. Sinon, travail avec imageMagick
* <delete> : Si true le script supprime les images préparées dont l'image original n'existe plus. Si false, le script indique juste les images préparées à supprimer sans rien faire.
* <LogFile> : Emplacement absolue du ficheir de log.
* <nbDaysForLog> : nombre de jours de log à conserver

Exemple d’exécution du script:

java -jar ImagePretraitement.jar /home/mdia/pretraitement_images_plus.py '/home/mdia/test-images;/home/mdia/test-images2' /home/mdia/test-images-preparees 'default;vignette;hidef' vips true /home/mdia/ImagePretraitement.log 10

Exemple de programmation dans le crontab

0 20 * * * java -jar ImagePretraitement.jar /home/mdia/pretraitement_images_plus.py '/home/mdia/test-images;/home/mdia/test-images2' /home/mdia/test-images-preparees 'default;vignette;hidef' vips true /home/mdia/ImagePretraitement.log 10

Avec ce cron, le script se lance tout les jours à 20h00 et écrit ses log dans le fichier /home/mdia/test.log

Message de log par rapport au traitement des images

Quand il donne juste l'info des éléments à supprimer sans faire l'action

  • [INFO NO DELETE] Répertoire vide :
  • [INFO NO DELETE] Image originale inexistant pour :

Quand il supprime réellement

  • [INFO DELETE] Suppression répertoire vide:
  • [INFO DELETE] Suppression image préparée :

Quand il crée de nouvelles images préparées qui n'existaient pas avant

  • [INFO CREATE DEFAULT|MINIATURE|HIDEF|VIGNETTE] Création image préparée :

Quand il met à jour une image préparée dont l'image original a changé

  • [INFO UPDATE DEFAULT|MINIATURE|HIDEF|VIGNETTE] Mise à jour image préparée

Quand une image originale ne peut pas être traitée

  • Erreur [0][!!IMAGE ILLISIBLE!!]
  • Syntax error:
  • ou d'autres messages d'erreurs

Lancement manuel

Le script peut-être lancé directement dans la console.

Exemple :

python /home/ajlsm/script-pre-traitement/bin/pretraitement_images_plus.py --source=/var/data2/images2 --collection=1R --cible=/var/data/images-preparees --format=hidef --quality=45 --verbose=5 --force --vips