InstantCommons

This page is a translated version of the page InstantCommons and the translation is 100% complete.

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ě.

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.

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.

Nastavení

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;

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

Výchozí InstantCommons, jak je povoleno prostřednictvím $wgUseInstantCommons, používá miniaturní obrázky s hotlinky z Wikimedia.[1] To může být pomalé a může také narušovat ukládání souborů do mezipaměti (nefunkční odkazy). Pokud byste chtěli generovat a používat náhledy na místním serveru, nepoužívejte $wgUseInstantCommons. Místo toho vložte tento kód do LocalSettings.php, jak je popsáno zde: Příručka:$wgForeignFileRepos#Použití.

$wgForeignFileRepos[] = [
	'class' => ForeignAPIRepo::class,
	'name' => 'commonswiki', // Musí to být odlišný název
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true, // Volitelné
	'descriptionCacheExpiry' => 43200, // 12 hodin, volitelné (hodnoty jsou sekundy)
	'apiThumbCacheExpiry' => 86400, // 24 hodin, volitelné, ale nutné pro místní ukládání do mezipaměti palce
];

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.

Úvahy o škálovatelnosti

Protože funkce InstantCommons umožňuje uživateli wiki stahovat zdroje ze serverů Wikimedie, je důležité, aby neexistovala možnost útoku Denial of Service proti používající wiki nebo Wikimedia Commons, například vložením 30 000 odkazů na největší soubory na Wikimedia Commons do stránky wiki a stisknutím tlačítka "náhled". Proto každý úspěšný požadavek InstantCommons bude muset být zaprotokolována wiki s povoleným InstantCommons spolu s původním uživatelem nebo IP adresou a časem požadavku. Pokud jednotlivý uživatel přepíše velkorysé omezení vnitřní šířky pásma (ve výchozím nastavení může být až 1 GB, ale měl by být uživatelsky konfigurovatelný), budoucí obrázky nebudou staženy během 24 hodin. Toto omezení by pro administrátory wiki nemělo existovat (pokud chce správce wiki provést útok odmítnutím služby proti své vlastní wiki, nemusí mu v tom být zabráněno. Pokud chtějí provést útok proti Wikimedii, nelze mu v tom zabránit, leda na straně Wikimedie). Kromě omezení šířky pásma na uživatele může existovat omezení velikosti souborů, které by měly být stahovány transparentně. Důvodem by bylo především to, že soubory nad určitou velikost by výrazně zpozdily zobrazení stránek a dokonce by mohly způsobit vypršení časového limitu požadavku na stránku. Pro účely stahování těchto souborů může být žádoucí použít externí aplikaci, aby to bylo možné provést na pozadí, aniž by došlo k pokračování požadavku na stránku. Konečně může existovat celková maximální velikost mezipaměti InstantCommons. Pokud je tato velikost překročena, nebudou staženy žádné další soubory.

I když je nepravděpodobné, že by jednotlivé wikiny využívající funkci InstantCommons způsobily významný nárůst nákladů pro Wikimedia Foundation (protože každý soubor je třeba stáhnout pouze jednou a existují omezení šířky pásma pro jednotlivé uživatele), bylo by přesto spravedlivé a rozumné, aby projekty využívající tuto funkci obsahovaly upozornění na stránkách s popisem InstantCommons, jako jsou: "Tento soubor pochází z Wikimedia Commons, mediálního archivu hostovaného nadací Wikimedia Foundation. Pokud byste chtěli podpořit nadaci Wikimedia Foundation, můžete přispět zde ..."

Související odkazy


Poznámky pod čarou