Jump to content

InstantCommons

From mediawiki.org
This page is a translated version of the page InstantCommons and the translation is 69% complete.
Vložte název obrázku na Commons do jakékoli běžící MediaWiki...
...obrázek se načte z Commons a vloží se do stránky.

InstantCommons je funkce MediaWiki, která dovoluje použití jakéhokoli mediálního souboru nahraného na servery Wikimedia Commons v jakémkoliv projektu MediaWiki na celém světě.

Zdůvodnění

V listopadu 2023 obsahovalo centrální mediální úložiště Nadace WikimediaWikimedia Commons – přes 100 milionů souborů. Každý z těchto souborů je dostupný pod svobodnou licencí nebo jako zcela volné dílo. Další omezení použití (s výjimkou zobrazení oficiálních log či obchodních značek) tedy neexistují. Licence, které omezují komerční využití souboru, nelze považovat za svobodné.

Jak roste všeobecné povědomí o Commons, roste i žádostivost cizích subjektů používat jeho obsah a přispívat také svými materiály. Technicky vzato je dnes možné načítat obrázky přímo ze serverů Wikimedia v kontextu jakékoliv webové stránky. Takovýto "hotlinking" není zakázaný, nicméně z mnoha důvodů může přinášet problémy:

  • Nerespektuje licenční podmínky uvedené u obrázku a nepřenáší ani jeho metadata.
  • Ztrácí se informace o autorství souboru a jeho umístění na serveru Wikimedia.
  • Při každém zobrazení stránky dochází k použití datového toku ze serveru Wikimedia (platí v případě, že obrázek nezůstane uložený v cache klienta nebo proxy; tato funkce je aktuálně ve výchozím nastavení zakázána)
  • Nepodporuje užitečné nástroje pro práci s obrázky (vytváření náhledů, titulky v obraze apod.) a obtížně se aplikuje v souvislostech encyklopedií, zejména kvůli standardnímu rozložení stránek.
  • Zdroj je určen odkazovanou adresou URL, což ztěžuje zrcadlení.
  • Dochází k nekontrolovanému vnějšímu využívání, přičemž jakákoliv změna na straně Wikimedia nevyhnutelně ovlivní vnější uživatele.
  • Neumožňuje prohlížení offline, které je ale v zemích s přetržitým přístupem k internetu klíčové.

InstantCommons si klade za cíl vyrovnat se se všemi výše zmiňovanými problémy tak, že poskytuje snadné načítání obrázků a metadat z cache serverů Wikimedia. Přestože je funkce ukládání do mezipaměti součástí cíle, byla od verze MediaWiki 1.27.2/1.28.1 zakázána. NInstantCommons byl poprvé implementován v rámci MediaWiki a umožňoval transparentní provádění všech operací s obrázky MediaWiki (miniatury, titulky, galerie atd.). I ostatní wiki mohou nicméně implementovat funkce podobné InstantCommons, a to pomocí API operací popisovaných níže.

Základní funkce

Správce stránky si během instalace může vybrat, zda funkci InstantCommons povolí. Ideálně by funkce měla být ve výchozím stavu povolena (za předpokladu, že je určena zapisovatelná složka pro načítání), aby tak co největší počet uživatelů mohl využívat obsah z Wikimedia Commons.

Pokud je funkce povolena, wikistránka se chová jako jeden z projektů Wikimedia - to znamená, že pokud je volán obrázek (nebo jiný soubor) z Commons, lze jej na wikistránku vložit jako místně načtený soubor pomocí jeho názvu. Názvy místních souborů mají přednost před názvy souborů na Commons.

Konfigurace

Výchozí metoda: $wgUseInstantCommons

Pro povolení InstantCommons v MediaWiki (verze 1.16 či pozdější) stačí přidat do Vašeho LocalSettings.php tento řádek (pro další informace vizte $wgUseInstantCommons ):

$wgUseInstantCommons = true;

Pro povolení v MediaWiki verze 1.13-1.15 si přečtěte Manual:$wgForeignFileRepos#Using files from Wikimedia Commons : ForeignAPIRepo .

Funkce by měla běžet okamžitě. Pokud se tak nestalo, zkontrolujte, zda na svém webovém serveru nemáte vypnutou PHP funkci curl_exec(). A HTTP Proxy is configured for cURL with $wgHTTPProxy .

Klasické InstantCommons s místním ukládáním do mezipaměti

Default InstantCommons as enabled through $wgUseInstantCommons uses thumb images hotlinked from Wikimedia.[1] This may be slow and may also interfere with file caching (broken links). If you would like to generate and use thumbs on your local server, do not use $wgUseInstantCommons. Instead, insert this code into LocalSettings.php as described here: Manual:$wgForeignFileRepos#Usage.

$wgForeignFileRepos[] = [
	'class' => ForeignAPIRepo::class,
	'name' => 'commonswiki', // Must be a distinct name
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true, // Optional
	'descriptionCacheExpiry' => 43200, // 12 hours, optional (values are seconds)
	'apiThumbCacheExpiry' => 86400, // 24 hours, optional, but required for local thumb caching
];

HTTPS

Od června 2015 je Wikimedia Commons dostupné pouze přes protokol HTTPS. Některé edice mohou postrádat seznam kořenových certifikátů, což znemožňuje spojení MediaWiki s Commons přes HTTPS. Pokud Vám InstantCommons přestalo fungovat, můžete zkusit:

  • Nainstalovat rozšíření php curl. (Je obecně spolehlivější a je pravděpodobné, že bude mít správné certifikáty předinstalovány.) Na Debian/Ubuntu: sudo apt-get install php-curl
  • Ověřte, že máte aktuální seznam kořenových certifikátů. Pokud máte nainstalované rozšíření php curl, následujte instrukce na webaware nebo Talk:InstantCommons#Stop_working.

SElinux

Pokud Váš server běží na systému SElinux, přečtěte si příslušný oddíl na stránce nastavení SELinux a zkontrolujte, že HTTPD skripty a moduly mají možnost úspěšně komunikovat se sítí. Pokud SElinux brání HTTPD skriptům a modulům připojit se k úložišti Wikimedia Commons, pak InstantCommons jednoduše nemůže fungovat.

Přístup přes firewall

Pokud je server, na kterém je wiki provozována, ukrytý za firewall, musí mu být umožněno odesílat odchozí http/https požadavky na commons.wikimedia.org a upload.wikimedia.org, jinak Instant Commons nebude fungovat. Rozsah IP adres lze nalézt na wikitech:IP addresses.

Použití souborů přes InstantCommons

Pokud InstantCommons funguje, můžete zvolit kterýkoliv soubor z Wikimedia Commons (v našem případě třeba tento), kliknout na tlačítko "Použít tento soubor" (u tlačítka se nachází ikona ) a zkopírovat kód do své wiki. V našem případě zkopírujeme

[[File:Wikipedia-Marker-commons.svg|thumb|Obrázek z Wikimedia Commons, vložený do této wiki]]
Obrázek z Wikimedia Commons, vložený do této wiki

a výsledek se zobrazí jako náhled (jak lze vidět vpravo).

Samozřejmě musíte stále dávat pozor na licenční ujednání či jiné právní požadavky. Více o využívání obsahu mimo projekty Wikimedia se dočtete zde.

Scalability considerations

Because the InstantCommons feature allows a wiki user to download resources from the Wikimedia servers, it is crucial that there is no possibility of a Denial of Service attack against either the using wiki, or the Wikimedia Commons, for example, by pasting 30K of links to the largest files on Wikimedia Commons into a wiki page and pressing "preview". Therefore, every successful InstantCommons request will have to be logged by the InstantCommons-enabled wiki together with the originating user or IP address and the time of the request. If an individual user overrides a generous internal bandwidth limitation (could be as high as 1 GB by default, but should be user-configurable), future images will not be downloaded within a 24 hour period. This limitation should not exist for wiki administrators (if a wiki admin wants to conduct a denial of service attack against their own wiki, they do not need to be stopped from doing so; if they want to conduct an attack against Wikimedia, they cannot be stopped from doing so except on Wikimedia's end). In addition to the per-user bandwidth limit, there could be a limit on the size of files which should be downloaded transparently. This would primarily be because files above a certain size would delay pageviews significantly and might even cause the page request to time out. It might be desirable to use an external application for the purpose of downloading these files, so that it can be done in the background without causing the page request to continue. Finally, there could be a total maximum size for the InstantCommons cache; if this size is exceeded, no further files would be downloaded.

While it is unlikely that individual wikis using the InstantCommons feature would cause a significant increase in cost for the Wikimedia Foundation (since every file only has to be downloaded once, and there are per-user bandwidth limitations), it would nevertheless be fair and reasonable for projects using the feature to include a notice on InstantCommons description pages such as: "This file comes from Wikimedia Commons, a media archive hosted by the Wikimedia Foundation. If you would like to support the Wikimedia Foundation, you can donate here ..."

Future potential

In the future, it may be desirable to offer a publisher/subscribe model of changes, which will require wiki-to-wiki authentication and a database of images which are used in subscribing wikis. This would also open up the threat of cross-wiki vandalism, which could be addressed using a delay phase of 24 hours or more for changes to take effect. Two-way functionality is another possibility, that is, to allow uploading free media directly to Commons from any wiki installation. However, this will require federated authentication as a minimum. It may also necessitate cross-wiki communication facilities to notify users from other wikis about Commons policies, which could be part of a larger project like LiquidThreads .

Související odkazy

References