Indexation & synchronisation des medias
Propriete mediaIndex
Chaque article porte une propriete mediaIndex (TextArea) contenant un JSON pre-calcule des medias references (audios, videos, galeries, dessins). But : permettre aux consommateurs de lister les medias d'un article sans re-parser le RTE/BlockGrid a l'execution.
Calcul (MediaExtractor + ArticleMediaIndexer)
ArticleMediaIndexer(handler surContentSavingNotification) declenche le calcul au save de l'article.MediaExtractor(service singleton) analyse le HTML/RTE et le JSON du BlockGrid pour extraire :- iframes (YouTube),
data-embed-url, liens audio, galeries. - videos du
videoBlock(BlockGrid) : lit directementvideoUrl(pas de markup iframe a parser) et resout la miniature YouTube comme pour les autres sources video. - dessins : parcourt l'image principale de l'article (
image) et les images des blocs/galeries (galleryPictures,image) ; toute image dont le media porteisDrawing=trueest ajoutee aDrawings(dedup par URL). C'est ce qui alimente la page/liste des dessins cote consommateur.
- iframes (YouTube),
- Le resultat est serialise en JSON dans
mediaIndex.
Recalcul en masse
POST /umbraco/api/MultimediaApi/Reindex recalcule mediaIndex pour tous les articles (a lancer apres un import ou un deploiement). Protege par le header X-Webhook-Secret. Retourne { totalProcessed, totalIndexed, errors }.
Synchronisation des fichiers media
MediaSavedHandler (handler sur MediaSavedNotification) synchronise les fichiers media sauvegardes vers le montage disque consomme par les frontends. Les medias sont stockes en local sur la VM (Azure Columbia), montes via docker-compose.
Dessins
Les images marquees isDrawing (media type Image) et liees a un article (drawingArticle) alimentent la categorie "Dessins". Le tag est pose automatiquement a l'import quand la categorie d'article contient "Dessin".

