Erweiterung:QuickInstantCommons
QuickInstantCommons Freigabestatus: stabil |
|
---|---|
Einbindung | Datei-Repositorium |
Beschreibung | Provides a performance optimized version of InstantCommons |
Autor(en) | Brian Wolff (BawolffDiskussion) |
Letzte Version | 1.5 |
MediaWiki | >= 1.42 |
PHP | >= 7.4.3 |
Lizenz | GNU General Public License 2.0 oder neuer |
Herunterladen | README |
|
|
Quarterly downloads | 82 (Ranked 60th) |
Übersetze die QuickInstantCommons-Erweiterung, wenn sie auf translatewiki.net verfügbar ist | |
Probleme | Offene Aufgaben · Einen Fehler melden |
Die QuickInstantCommons-Erweiterung ist eine leistungsoptimierte Version von $wgUseInstantCommons
.
Es erlaubt auch einfaches Thumbnailing von Dateien, die keine MediaHandler-Erweiterung im lokalen Wiki haben.
For example, the first page of a PDF will still thumbnail even without Erweiterung:PdfHandler installed, but advanced features like multipage requires that extension to be installed locally.
Leistung
Initial testing was done using the page en.wikipedia.org: List of governors general of Canada (revision 1054426240) which has 85 images. Die Tests wurden mit deaktiviertem Caching und einer geschätzten TTFB für die API bei einer bereits eingerichteten Verbindung von ~250 ms durchgeführt.
Es dauerte 1.038,18 Sekunden mit InstantCommons des MediaWiki-Kerns, 18,50 Sekunden mit dieser Erweiterung mit deaktiviertem Prefetching und 1,10 Sekunden mit dieser Erweiterung mit aktiviertem Prefetching.
Installation
- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
QuickInstantCommons
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickInstantCommons - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'QuickInstantCommons' );
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
Konfiguration
If you were previously using $wgUseInstantCommons
, no configuration is needed beyond wfLoadExtension
-ing this extension; configuration is only required for advanced usage.
$wgUseQuickInstantCommons
- Richtet automatisch
$wgForeignFileRepos
ein, um diese Erweiterung verwenden zu können (standardmäßigtrue
). Setze auffalse
, wenn du etwas anpassen möchtest. $wgQuickInstantCommonsPrefetch
- Enable prefetching images based on what's in DB (default: true). Most of the time this is a major performance boost, but its possible that occasionally this might cause work to be done that isn't necessary.
$wgQuickInstantCommonsPrefetchMaxLimit
- Max number of images to prefetch if prefetching is enabled (default: 1.000). Could hit OOM issues if too high.
Erweiterte Konfiguration
You can directly configure $wgForeignFileRepos
if you want.
For example, if you want to use this extension with a wiki that is not Commons.
It is also required if you want to use this at the same time as normal instant commons (not reccomended).
Beispiel:
wfLoadExtension( 'QuickInstantCommons' );
$wgUseQuickInstantCommons = false;
$wgForeignFileRepos[] = [
'class' => '\MediaWiki\Extension\QuickInstantCommons\Repo',
'name' => 'commonswiki', // Muss ein eindeutiger Name sein
'directory' => $wgUploadDirectory, // FileBackend braucht hier einen Wert.
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'hashLevels' => 2, // Important this matches foreign repo if 404 transform enabled.
'thumbUrl' => 'https://upload.wikimedia.org/wikipedia/commons/thumb', // Set to false to auto-detect
'fetchDescription' => true, // Optional
'descriptionCacheExpiry' => 43200, // 12 Stunden, optional (Werte in Sekunden). This cache is not adaptive.
'transformVia404' => true, // Whether foreign repo supports 404 transform. Viel schneller, wenn unterstützt
'abbrvThreshold' => 160, // must match what foreign repo uses if 404 transform enabled. Standard ist 255. Wikimedia verwendet 160.
'apiMetadataExpiry' => 60*60*24, // Max time metadata is cached for. Recently changed items are cached for less
'disabledMediaHandlers' => [TiffHandler::class] // media handler extensions to not use. For 404 handling its important that the local media handler extensions match the foreign ones.
];
apiMetadataExpiry
is probably the most important value from a performance perspective (other then $wgQuickInstantCommonsPrefetch
).
If you feel things are slow, try increasing it.
If a new version of a file is uploaded, it might not show up properly until after metadata expires.
However you can force an expiry by purging the file description page on the local wiki.
If you want to maximize performance, an appropriate value might be 60*60*24*30 = 2.592.000 (1 month)
ForeignAPIRepo
, $wgResponsiveImages
should not impact performance when transformVia404 is enabled, so it is recommended that you keep it turned on.false
for the extension to try and auto-detect.
Unterschiede zwischen QuickInstantCommons und ForeignApiFileRepo
- Caches curl handle
- Uses HTTP/2 multiplexing (Major performance boost)
?action=purge
of File pages purges image metadata- Does not support local thumbnail caching
- Automatically generate thumbnail URLs locally if foreign repository supports 404 handling (Major performance boost, especially when responsive images are enabled)
- Prefetch expected images based on imagelinks table (Major performance boost)
- Allows limited thumbnailing of files that are missing handler extension (e.g. Still show thumbnail of first page of a PDF even if you don't have Extension:PdfHandler installed).
- Adaptive TTL support that actually works (If the foreign image was recently edited, cache for shorter time, so that if its vandalism the revert will show up faster).
- Configurable metadata caching time, with better defaults than core.
- When using a foreign repo that itself has foreign repos (For example, how en.wikipedia.org includes commons.wikimedia.org), image page descriptions will now work correctly.
- File redirects for files that are foreign files on the foreign repo work.
- Allows disabling media handlers that are incompatible and use fallback behaviour instead.
- For images that can't use 404 rendering (missing local media handler extension or if transformVia404 false), predictively prefetches the responsive high-dpi thumbnails
- Reuse HTTP/2 connection for fetching description page text
- Do not show text of 404 if the description page is missing on foreign wiki. Instead just show it as blank.
Other ideas that haven't been implemented: better adaptive cache for image description pages.
Bekannte Probleme
- If you are using Extension:TimedMediaHandler, you need to use at least MediaWiki 1.38 for this extension to work with video files.
- If you get an error about undefined constant and the constant name has CURL in it, please ensure that the php curl extension is using at least version 7.43.0 of curl.
Siehe auch
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |