InstantCommons/nl


InstantCommons is een functie van MediaWiki om het gebruik van elk geüpload mediabestand van de Wikimedia Commons mogelijk te maken in elke MediaWiki-installatie.
Motivering
Vanaf november 2023 bevat Wikimedia Commons, de centrale repository voor media die wordt gehost door de Wikimedia Foundation, meer dan 100 miljoen bestanden. Elk van deze bestanden is beschikbaar onder een vrije inhoudslicentie of in het publieke domein; Er zijn geen andere gebruiksbeperkingen dan die met betrekking tot het gebruik van officiële insignes of handelsmerken. Licenties die commercieel gebruik beperken, worden als niet-vrij beschouwd.
Naarmate het bewustzijn over Commons groeit, neemt ook het verlangen van externe partijen toe om daarin opgenomen inhoud te gebruiken en nieuw materiaal bij te dragen. Het is nu technisch mogelijk om afbeeldingen rechtstreeks van de servers van Wikimedia te laden in de context van elke webpagina. Een dergelijke "hotlinking" is toegestaan, maar is om meerdere redenen problematisch:
- Het is niet in overeenstemming met de licentievoorwaarden van de afbeelding en laat niet toe dat andere metadata betrouwbaar worden vervoerd
- Naast het niet goed credits geven aan de auteur van het mediabestand, geeft het ook geen credits aan Wikimedia
- Het verbruikt Wikimedia-bandbreedte bij elke paginaweergave (tenzij de afbeelding is opgeslagen aan de client-zijde of via een proxy; deze functionaliteit is nu standaard uitgeschakeld)
- Het ondersteunt geen nuttige beeldoperaties zoals thumbnailgeneratie en ondertekening (captioning) en is moeilijk te gebruiken in de context van een wiki, met name voor standaardlayout-operaties
- Het is gebonden aan URL's als hulpbron-identificatoren, waardoor mirroring ingewikkeld wordt
- Het creëert een niet-traceerbaar extern gebruik op het web, waar elke verandering aan de kant van Wikimedia noodzakelijkerwijs deze externe gebruikers beïnvloedt
- Het is niet mogelijk om een pagina offline te bekijken, wat cruciaal is in landen die geen stabiele toegang tot het netwerk hebben.
InstantCommons probeert dit allemaal aan te pakken door een eenvoudige methode te bieden voor het (in de cache) laden van afbeeldingen en metadata van de servers van Wikimedia. Hoewel de functionaliteit hiervoor onderdeel is van het doel, is deze sinds MediaWiki 1.27.2/1.28.1 uitgeschakeld. InstantCommons werd voor het eerst ingevoerd binnen MediaWiki, waardoor alle MediaWiki-afbeeldingshandelingen (thumbnailing, ondertekening, galeries, enz.) transparant konden worden uitgevoerd. Andere wiki-engines kunnen functionaliteit implementeren zoals InstantCommons met behulp van de hieronder beschreven API-operaties.
Basisset functies
Tijdens de installatie kan de sitebeheerder kiezen of hij InstantCommons wil inschakelen. Idealiter zou de functie echter standaard moeten worden ingeschakeld (op voorwaarde dat er een beschrijfbare uploadmap is opgegeven) om een zo groot mogelijk aantal gebruikers in staat te stellen Wikimedia Commons-inhoud te gebruiken.
Als de functie is ingeschakeld, gedraagt de wiki zich als een Wikimedia-project, dat wil zeggen, als er wordt verwezen naar een afbeelding of ander mediabestand dat op Commons staat, kan het worden opgenomen in een wiki-pagina als een lokaal geüpload bestand door de naam op te geven. Lokale bestandsnamen hebben voorrang op Commons-bestandsnamen.
Configuratie
Standaardmethode: $wgUseInstantCommons
Om InstantCommons in MediaWiki versie 1.16 of hoger in te schakelen, volstaat het om deze regel toe te voegen aan uw LocalSettings.php (details: $wgUseInstantCommons):
$wgUseInstantCommons = true;
Klassieke InstantCommons met lokaal gecachete miniaturen
De standaard InstantCommons zoals ingeschakeld via $wgUseInstantCommons gebruikt miniaturen die zijn gehotlinkt van Wikimedia.[1]
Dit kan langzaam zijn en verstoort mogelijk ook het cachen van bestanden (gebroken links).
Indien u miniaturen op uw lokale server wil genereren en gebruiken, gebruik dan niet $wgUseInstantCommons.
Voeg in plaats daarvan deze code in LocalSettings.php in zoals hier is beschreven: Manual:$wgForeignFileRepos#Usage.
$wgForeignFileRepos[] = [
'class' => ForeignAPIRepo::class,
'name' => 'commonswiki', // Moet een unieke naam zijn
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'hashLevels' => 2,
'fetchDescription' => true, // Optioneel
'descriptionCacheExpiry' => 43200, // 12 uur, optioneel (waardes zijn seconden)
'apiThumbCacheExpiry' => 86400, // 24 uur, optioneel, maar vereist voor het lokaal cachen van miniaturen
];
Bestanden gebruiken via InstantCommons

Met InstantCommons ingeschakeld kunt u elke afbeelding van Wikimedia Commons uitkiezen (bv. deze), klik op de knop "Gebruik dit bestand" (de knop met het wikipictogram
ernaast) en plak de code in uw wiki.
In ons voorbeeld, geplakt
[[File:Wikipedia-Marker-commons.svg|thumb|Een afbeelding van Wikimedia Commons ingebed in deze Wiki]]
zal de miniatuur weergeven (zoals aan de rechterzijde van deze pagina te zien is).
Houd er rekening mee dat wanneer u bestanden op deze manier gebruikt, u nog steeds alle wettelijke vereisten voor licenties en andere bestandsgebruik moet respecteren - zie Hergebruik van inhoud buiten Wikimedia.
Probleemoplossing
User-agent aanpassen
Vanaf 2025 kan Wikimedia Commons uw wiki categoriseren als een onbekende oorsprong en zijn verzoeken beperken of blokkeren. Dit komt door de handhaving van het Wikimedia Foundation User-Agent Beleid, om de toename van geautomatiseerd schrapen te verminderen.
Helaas heeft de door InstantCommons gebruikte User-Agent geen oorsprong aangegeven. Dit wordt opgelost in MediaWiki 1.45 (inclusief MediaWiki 1.39.14+, 1.43.4+ en 1.44.1+). Als u een blokkeer- of blokmelding tegenkomt bij het gebruik van InstantCommons, voeg dan het onderstaande stukje code toe aan het einde van uw bestand LocalSettings.php. Deze code is compatibel met MediaWiki 1.34 en latere versies:
$wgUseInstantCommons = false;
$wgForeignFileRepos[] = [
'class' => ForeignAPIRepoWithFixedUA::class,
'name' => 'wikimediacommons',
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'url' => 'https://upload.wikimedia.org/wikipedia/commons',
'thumbUrl' => 'https://upload.wikimedia.org/wikipedia/commons/thumb',
'directory' => $wgUploadDirectory,
'hashLevels' => 2,
'transformVia404' => true,
'fetchDescription' => true,
'descriptionCacheExpiry' => 43200,
'apiThumbCacheExpiry' => 0,
];
class ForeignAPIRepoWithFixedUA extends \ForeignAPIRepo {
public static function getUserAgent() {
global $wgCanonicalServer;
$mediaWikiVersion = 'MediaWiki/' . MW_VERSION;
return "$mediaWikiVersion ($wgCanonicalServer) ForeignAPIRepo/T400881";
}
}
HTTPS
Sinds juni 2015 is Wikimedia Commons alleen nog toegankelijk via HTTPS. Sommige installaties missen mogelijk hun root-certificaat, waardoor MediaWiki geen contact kan maken met Commons via HTTPS. Als InstantCommons niet meer werkt, probeer dan:
- Installeer de extensie php curl. (Het is over het algemeen betrouwbaarder en waarschijnlijk meer dat er al correcte certificaten zijn geïnstalleerd.) Op Debian/Ubuntu:
sudo apt-get install php-curl - Controleren of u een up-to-date certificaat heeft. Als u de extensie php curl heeft geïnstalleerd, volg dan de instructies webaware of lees deze pagina.
- Zorg ervoor dat de PHP-functie
curl_exec()op uw webserver niet is uitgeschakeld.
SElinux
Als uw serverbesturingssysteem SElinux heeft geïmplementeerd, neem dan een kijkje in deze sectie op de instellingenpagina SELinux en zorg ervoor dat HTTPD-scripts en -modules toegang hebben tot het netwerk. Als SElinux HTTPD-scripts en modules verhindert om verbinding te maken met de WikiMedia Commons-repository, werkt de functie InstantCommons niet!
Achter een firewall
Als de server waarop de wiki wordt uitgevoerd achter een firewall staat, moet de wiki-server uitgaande http/https-aanvragen kunnen doen aan commons.wikimedia.org en upload.wikimedi.org, zodat Instant Commons kan werken. Het IP-adresbereik kan men vinden op wikitech:IP addresses.
Als u een proxy nodig hebt om toegang te krijgen tot het internet van achter de firewall, zie dan $wgHTTPProxy.
Zie ook
- Manual:$wgForeignFileRepos – voor dezelfde functionaliteit als InstantCommons maar met andere wiki's
- PhotoCommons – WordPress-plug-in om dezelfde functionaliteit te bieden
- Voorbeelden van sites die InstantCommons gebruiken
- Extension:QuickInstantCommons