Cas d’usage n° 7 : Utiliser un serveur d’images IIIF autonome : Cantaloupe

Prérequis :

  • installation Java + Cantaloupe
  • installation standard d’Omeka S

Présentation de Cantaloupe

Cantaloupe est l’un des serveurs d’images les plus répandus. Il est conforme à toutes les versions de l’API Image IIIF, jusqu’à la version 3.0. Cantaloupe est un logiciel libre. Il fonctionne dans un environnement Java sous Linux ou Windows. Un conteneur Docker préconfiguré est également disponible.

Cantaloupe est fourni prêt à l’emploi et est réputé fonctionner dès son installation. Cependant un paramétrage avancé et une mise en production nécessitent des compétences en administration système.

La documentation fournie est très complète et permet de faire face à un grand nombre de situations, notamment en ce qui concerne l’accès aux images, les processeurs adaptés aux différents formats et les stratégies de cache.

Liens :

Configuration

L’ensemble de la configuration d’une installation est rassemblée dans un seul fichier de configuration. Il est modifiable manuellement ou via une interface web conviviale, mais non traduite en français.

Interface d’administration de Cantaloupe

Procédure d’installation basique

  • assurez-vous que Java (version 17 ou éventuellement supérieure) est installé sur votre machine (Linux ou Windows),
  • téléchargez la dernière version de Cantaloupe (la 5.0.7. publiée en mars 2025) depuis le site officiel.
  • décompressez l’archive sur votre machine,
  • renommez ou copiez le fichier cantaloupe.properties.sample en cantaloupe.properties.
  • ouvrez-le dans un éditeur de texte afin de
    • définir la modalité et le chemin d’accès aux images :
      • source.static = FilesystemSource
      • FilesystemSource.BasicLookupStrategy.path_prefix = chemin du dossier contenant des images,
    • activer l’interface web d’administration à l’adresse /admin, si vous le souhaitez :
      • endpoint.admin.enabled = true true/false pour activer ou désactiver,
      • endpoint.admin.username = admin identifiant pour accéder à l’interface,
      • endpoint.admin.secret = sesame mot de passe.
  • lancez Cantaloupe
    • sous MacOS/Linux, avec la commande java -Dcantaloupe.config=/path/to/cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.6.jar
    • sous Windows, avec la commande java -Dcantaloupe.config=C:\path\to\cantaloupe.properties -Xmx2g -jar cantaloupe-5.0.6.jar
Usage :
En supposant que vous ayez déposé une image nommée image.tif dans le répertoire indiqué et que vous souhaitiez utiliser la version 2 de l’API Image, accédez - au fichier info.json via l’URL : http://localhost:8182/iiif/2/image.tif/info.json - à l’image complète en résolution maximale via l’URL : http://localhost:8182/iiif/2/image.tif/full/max/0/default.jpg - à un carré de 200 pixels de côté découpé dans l’angle supérieur gauche de l’image via l’URL : http://localhost:8182/iiif/2/image.tif/0,0,200,200/max/0/default.jpg

Formats d’image et processeurs d’images

Cantaloupe est principalement utilisé pour servir des images, il accepte également les documents PDF et les vidéos. Les principaux formats d’image sont pris en charge par au moins un processeur, ce qui permet de satisfaire, partiellement ou complètement, l’API image de façon plus ou moins performante. Dans l’administration de Cantaloupe, un tableau indique quels formats d’image sont pris en charge par quel processeur :

Formats d’images supportés

Les formats d’images TIFF tuilé et JPEG2000 sont considérés comme de bons choix pour Cantaloupe en termes de performance et de respect des spécifications de l’API Image. Pour le premier, la documentation conseille d’utiliser le processeur Java2d et pour le second l’un des processeurs suivants : Kakadu (licence propriétaire), Grok ou OpenJpeg.

Certains processeurs sont intégrés à l’installation standard, d’autres, comme Grok, OpenJpeg, TurboJpeg ou Kakadu, doivent être installés séparément.

Coupler un serveur d’images Cantaloupe IIIF avec Omeka

Les deux approches présentées ci-après sont mises en œuvre sans faire appel à des modules IIIF particuliers.

Les images sont stockées sur le serveur Cantaloupe

C’est la configuration par défaut de Cantaloupe (source statique FilesystemSource).

  1. Récupérer les URL info.json des images sur ce modèle : https://SERVEUR/iiif/VERSION/NOM/info.json où
  • SERVEUR est l’adresse du serveur,
  • VERSION : 2 ou 3, version de l’API Image utilisée,
  • NOM : identifiant de l’image démandée, généralement le nom du fichier.
  1. Les ajouter à l’installation Omeka S :

Les images sont ailleurs

En paramétrant Cantaloupe pour récupérer les images via une URL, il est possible d’assurer une liaison transparente pour récupérer les urls info.json.

  1. Paramétrer Cantaloupe pour utiliser des ressources en ligne, partie Source :
  • Strategy : Static, il est aussi possible de faire appel à un script délégué afin de prendre en charge des situations plus complexes,
  • Static Sources : HttpSource, et dans l’onglet du même nom :
  • Lookup Strategy : Basic,
  • URL Prefix : première partie de l’URL, avant l’identifiant de l’image, pour accéder à l’image, par exemple : https://depot.mexina.fr/,
  • URL Suffix : partie de l’URL à la suite de l’identifiant, par exemple `/download,
  • à titre d’exemple, la requête https://iiif.mexina.fr/iiif/3/KISE0%2FcalAqiWA38.jpg/info.json traite l’image téléchargeable à l’adresse https://depot.mexina.fr/KISE0/calAqiWA38.jpg/download
  1. Pour chaque image, construire l’URL info.json à partir de l’identifiant du média (si l’identifiant comporte des caractères réservés : / ? # [ ] @ ! $ & ' ( ) * + , ; = il est nécessaire de les encoder (URL encoding, ou encodage pourcent, par exemple / par %2F, comme dans l’exemple ci-dessus )
  2. Les intégrer à l’installation Omeka S :