Extension:QuickInstantCommons

This page is a translated version of the page Extension:QuickInstantCommons and the translation is 100% complete.
Manuel des extensions MediaWiki
QuickInstantCommons
État de la version : stable
Implémentation Dépôt des fichiers
Description Provides a performance optimized version of InstantCommons
Auteur(s) Brian Wolff (Bawolffdiscussion)
Dernière version 1.5
MediaWiki >= 1.42
PHP >= 7.4.3
Composer mediawiki/quickinstantcommons
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
README
  • $wgUseQuickInstantCommons
  • $wgQuickInstantCommonsPrefetchMaxLimit
  • $wgQuickInstantCommonsPrefetch
Téléchargements trimestriels 33 (Ranked 111st)
Traduire l’extension QuickInstantCommons sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L'extension QuickInstantCommons est une version optimisée pour les performances de $wgUseInstantCommons . Il permet également de faire des miniatures de base des fichiers pour lesquels il manque une extension MediaHandler sur le wiki local. Par exemple, la première page d'un PDF restera une vignette même si l'Extension PdfHandler n'est pas installé, mais les fonctionnalités avancées telles que le multipage nécessitent que cette extension soit installée localement.

Performances

Les tests initiaux ont été effectués à l'aide de la page en.wikipedia.org: Liste des gouverneurs généraux du Canada (révision 1054426240) qui contient 85 images. Les tests ont été effectués avec le cache désactivé et un Time To First Byte (TTFB) estimé d'environ 250 ms pour l'API sur une connexion de déjà configurée.

Il a fallu 1 038,18 secondes (soit 17,303 minutes) avec InstantCommons du noyau MediaWiki, 18,50 secondes avec cette extension et le préchargement désactivé, et 1,10 secondes avec cette extension et le préchargement activé.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé QuickInstantCommons dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickInstantCommons
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'QuickInstantCommons' );
    
  •   Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Si vous utilisez cette extension, veuillez désactiver $wgUseInstantCommons car cette extension la remplace. Si vous avez vraiment besoin d'utiliser les deux en même temps, utilisez les paramètres de la section Configuration avancée.

Configuration

Si vous utilisiez $wgUseInstantCommons auparavent, aucune configuration n'est nécessaire au-delà de wfLoadExtension pour cette extension; la configuration n'est nécessaire que pour l'utilisation avancée.

$wgUseQuickInstantCommons
Configurez automatiquement $wgForeignFileRepos pour utiliser cette extension (par défaut true). Initialisez à false si vous souhaitez personnaliser quelque chose.
$wgQuickInstantCommonsPrefetch
Activer le pré-chargement des images en fonction du contenu de la base de données (par défaut : true). La plupart du temps cela booste les performances, mais il est possible que parfois cela entraîne du travail inutile.
$wgQuickInstantCommonsPrefetchMaxLimit
Nombre maximum d'images à pré-charger quand le pré-chargement est activé (par défaut : 1 000). Peut atteindre les problèmes de mémoire insuffisante Out of memory (OOM) si la valeur est trop grande.

Configuration avancée

Vous pouvez configurer directement $wgForeignFileRepos si vous voulez. Par exemple, si vous voulez utiliser cette extension avec un wiki qui n'est pas Commons. Il est également nécessaire si vous souhaitez l'utiliser en même temps que les commandes instantanées normales (non recommandé). Exemple :

wfLoadExtension( 'QuickInstantCommons' );
$wgUseQuickInstantCommons = false;
$wgForeignFileRepos[] = [
	'class' => '\MediaWiki\Extension\QuickInstantCommons\Repo',
	'name' => 'commonswiki', // doit être un nom différent
	'directory' => $wgUploadDirectory, // FileBackend a besoin d'une valeur ici.
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2, // Important : ceci correspond au dépôt externe si la transformation 404 est activée.
	'thumbUrl' => 'https://upload.wikimedia.org/wikipedia/commons/thumb', // mettre à <code>false</code> pour la détection automatique
	'fetchDescription' => true, // optionnel
	'descriptionCacheExpiry' => 43200, // 12 heures, facultatif (valeur en secondes). ce cache n'est pas adaptatif.
	'transformVia404' => true, // indique si le dépôt externe prend en charge la transformation 404. Bien plus rapide si supporté
	'abbrvThreshold' => 160, // doit correspondre à ce que le dépôt externe utilise lorsque la transformation 404 est activée. valeur par défaut :  $1. Wikimedia utilise 160.
	'apiMetadataExpiry' => 60*60*24, // durée de vie maximale des métadonnées dans le cache. Les articles récemment modifiés sont mis en cache pour moins
	'disabledMediaHandlers' => [TiffHandler::class] // extensions du gestionnaire de média à ne pas utiliser. Pour le traitement de 404, il est important que les extensions de traitement des médias locaux correspondent à celles des externes.
];

apiMetadataExpiry est probablement la valeur la plus importante du point de vue des performances (autre que $wgQuickInstantCommonsPrefetch). Si vous pensez que les choses vont trop lentement, essayez d'augmenter la valeur. Si une nouvelle version de fichier est téléversée, elle peut ne pas apparaître correctement tant que les anciennes métadonnées n'ont pas expiré. Cependant, vous pouvez forcer l'expiration en purgeant la page de description du fichier sur le wiki local. Si vous voulez maximiser les performances, une valeur appropriée pourrait être 60*60*24*30 = 2 592 000 (soit 1 mois)

Contrairement au ForeignAPIRepo du noyau MediaWiki, $wgResponsiveImages ne doit pas affecter les performances lorsque transformVia404 est activé, il est donc recommandé de le garder actif.
Si le dépôt extérieur possède à son tour un dépôt extérieur (par exemple : en.wikipedia.org), il n'y aura pas d'URL unique valide pour la vignette. Au lieu de cela, mettez la valeur à false pour que l'extension tente de le détecter automatiquement.

Différences entre QuickInstantCommons et ForeignApiFileRepo

  • Récupère la référence curl
  • Utilise le multiplexage HTTP/2 (amélioration des performances majeures)
  • ?action=purge des pages des fichiers purge les métadonnées des images
  • Ne supporte pas la mise en cache locale des vignettes
  • Génére automatiquement les URL des vignettes si le dépôt externe prend en charge la gestion 404 (Avancement majeur des performances, surtout lorsque les images réactives sont activées)
  • Effectue la pré-recherche d'images en fonction du tableau des liens d'image (Avancement majeur des performances)
  • Permet d'avoir les vignettes minimales des fichiers dont l'extension n'a pas de gestionnaire (par exemple, afficher toujours une vignette de la première page d'un PDF même si l'Extension PdfHandler n'est pas installée).
  • Support adaptatif TTL qui fonctionne actuellement (Si l'image externe a été récemment modifiée, elle est mise en cache pour une période plus courte, de sorte que s'il s'agit de vandalisme, l'annulation apparaîtra plus rapidement).
  • Temps configurable de la mise en cache des métadonnées, avec de meilleures valeurs par défaut que le noyau.
  • Lorsque vous utilisez un dépôt externe qui a lui-même d'autres dépôts externes (par exemple, comment en.wikipedia.org inclut commons.wikimedia.org), les descriptions de pages d'images fonctionneront maintenant correctement
  • Redirections des fichiers pour les fichiers externes, vers de dépôt externe de travail.
  • Permet de désactiver les gestionnaires des médias incompatibles et d'utiliser à la place un comportement de repli.
  • Pour les images qui ne peuvent pas utiliser le rendu 404 (pas d'extension locale pour le traitement des médias, ou si transformVia404 vaut false), on pré-charge de manière prédictive les vignettes réactives à fort dpi
  • Réutiliser la connexion HTTP/2 pour obtenir le texte de la page de description
  • Ne pas afficher le texte 404 si la page de description est absente sur un wiki externe. Au lieu de cela, afficher-le comme vide.

D'autres idées qui n'ont pas été mises en œuvre : un meilleur cache adaptatif pour les pages de description des images.

Problèmes connus

  • Si vous utilisez l'Extension TimedMediaHandler, vous devez utiliser au moins Mediawiki 1.38 pour que cette extension fonctionne avec les fichiers vidéo.
  • Si vous obtenez une erreur concernant une constante non définie et que le nom de la constante contient CURL, veuillez vous assurer que l'extension PHP curl utilise au moins la version 7.43.0 de curl.

Voir aussi