Extension:QuickInstantCommons
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 |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | README |
|
|
Téléchargements trimestriels | 87 (Ranked 63rd) |
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 dossierextensions/
.
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.
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éfauttrue
). 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)
ForeignAPIRepo
du noyau MediaWiki, $wgResponsiveImages
ne doit pas affecter les performances lorsque transformVia404 est activé, il est donc recommandé de le garder actif.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
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |