Médias

Médiathèque partagée, téléversement vers un stockage objet, optimisation des images et suivi des références par les autres modules.

@lrvo/module-medias ajoute une médiathèque à l'admin et remplit le registre média du core. Les autres modules l'utilisent sans jamais le déclarer en dépendance : ils appellent les façades du core, qui deviennent actives dès que ce module est installé.

La médiathèque, sa grille de vignettes, sa recherche et son filtre par type

La grille est le point d'entrée humain de la bibliothèque : recherche par nom de fichier, filtre par type, téléversement. C'est le même fonds que vient chercher un bloc image ou un champ média d'un autre module, par le registre plutôt que par un import. Voir Intégration.

Pages de cette section

PageContenu
InstallationInstaller le module, créer les tables, monter la route de fichier.
ConfigurationVariables d'environnement, stockage objet, permissions, entrée d'admin.
TéléversementFormats acceptés, limites, validation, optimisation, nommage.
AdministrationLa médiathèque : filtres, sélection multiple, actions groupées, fiche d'un média.
IntégrationRéférencer un média depuis un autre module ou un bloc.
Modèle de donnéesTables lrvo_media et lrvo_media_references.
APIRoutes HTTP d'admin et route publique de fichier.

Ce que le module apporte

ÉlémentDétail
Tableslrvo_media et lrvo_media_references.
Entrée d'adminUne section « Médias » à l'ordre 25, contenant un item unique à l'ordre 50, icône Image01Icon.
Permissionsmedia.view, media.upload, media.replace, media.delete.
Routes API9 routes d'admin. Aucune route publique d'API.
Route publiqueLe service de fichier /lrvo/media/<nom>, à monter dans le projet.
Registres remplisLe registre média côté serveur et côté client.

Le module que les autres consomment

C'est le seul module officiel dont la valeur principale n'est pas sa propre interface, mais ce qu'il rend possible ailleurs. @lrvo/module-pages et @lrvo/module-posts attachent des médias à leur contenu sans importer ce package, en passant par les façades @lrvo/core/media-registry.

Sans ce module, ces façades sont des fonctions neutres : les lectures renvoient vide, les écritures renvoient un échec explicite, le sélecteur d'image se masque. Aucun code appelant n'a donc à se conditionner.

C'est ce contrat qui est documenté dans Intégration.

Où vivent les fichiers

Les fichiers ne sont pas stockés sur le disque du serveur. Le module les envoie vers le stockage objet configuré au niveau du core, compatible S3, et ne garde en base que leurs métadonnées.

Deux noms coexistent donc pour chaque fichier :

  • une clé de stockage privée, jamais exposée, de la forme media/<année>/<mois>/<nom unique> ;
  • un nom public assaini, utilisé dans l'URL /lrvo/media/<nom>.

Renommer un média change le second sans toucher au premier, ce qui n'invalide aucune référence. Voir Téléversement.

Notes

  • Le champ version du manifeste du module vaut 1.0.0 et ne suit pas la version du package. Se fier à package.json.
  • Le module ne génère aucune vignette et aucune variante responsive. Il conserve un seul fichier optimisé, et laisse next/image faire le reste.
  • Les tables gardent le préfixe lrvo_media, au singulier, hérité de l'époque où la médiathèque vivait dans le core. Le renommer casserait les bases existantes sans rien apporter.

Sur cette page