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 hours, optional, but required for local thumb caching
];
Using files via InstantCommons

With InstantCommons enabled, you can choose any image from Wikimedia Commons (e.g. this one), click the "Use this file" button (the button with the wiki icon
next to) and paste the markup in your wiki.
In our example, pasting
[[File:Wikipedia-Marker-commons.svg|thumb|A picture from Wikimedia Commons embedded in this Wiki]]
will render the thumbnail (as can be seen on the right side of this page).
Note that when using files in this way you will still need to respect any licensing and other file use legal requirements - see Commons:Reusing content outside Wikimedia.
Troubleshooting
Set custom user agent
Since 2025, Wikimedia Commons may categorize your wiki as an unidentified origin and throttle or block its requests. This is due to enforcement of the Wikimedia Foundation User-Agent Policy, to mitigate the increase of automated scraping.
Unfortunately, the User-Agent used by InstantCommons did not set any origin. This will be fixed in MediaWiki 1.45 (including MediaWiki 1.39.14+, 1.43.4+, and 1.44.1+). If you encounter a throttling or block message when using InstantCommons, please add the below code snippet to the end of your LocalSettings.php file. This snippet is compatible with MediaWiki 1.34 and later:
$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
Since June 2015, Wikimedia Commons can only be accessed using HTTPS. Some installs may be missing their root certificate store which prevents MediaWiki from contacting Commons over HTTPS. If InstantCommons stopped working, try:
- Installing the php curl extension. (It is generally more reliable, and more likely to have proper certificates already installed.) On Debian/Ubuntu:
sudo apt-get install php-curl
- Verifying you have an up-to-date certificate store. If you have the php curl extension installed, follow the instructions webaware or Talk:InstantCommons#Stop_working.
- Make sure the PHP function
curl_exec()is not disabled in your web server.
SElinux
If your server OS implements SElinux, please take a look at the dedicated section on the SELinux settings page, and make sure HTTPD scripts and modules can access the network successfully. If SElinux prevents HTTPD scripts and modules from connecting to WikiMedia Commons repository, the InstantCommons feature will simply not work.
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