InstantCommons
InstantCommons es una función de MediaWiki que permite usar cualquier archivo multimedia subido a Wikimedia Commons en cualquier instalación de MediaWiki de todo el mundo.
Justificación
Desde noviembre de 2023, Wikimedia Commons, el repositorio central de archivos multimedia hospedado por la Fundación Wikimedia, contiene más de 73 millones de archivos. Todos y cada uno de estos archivos están disponibles bajo una licencia de contenido libre o bien en el dominio público; no existe ninguna otra restricción sobre ellos más allá del uso de insignias oficiales o de marcas registradas. Las licencias que limitan la utilización comercial se consideran como no libres. Each of these files is available under a free content license or in the public domain; there are no other restrictions of use beyond those relating to use of official insignia or trademarks. Licenses which limit commercial use are considered non-free.
A medida que crece la popularidad de Commons, también lo hace el deseo de terceros de usar contenido guardado allí, y de contribuir con nuevo material. En la actualidad es técnicamente posible cargar imágenes directamente desde los servidores de Wikimedia en el contexto de cualquier página web. El uso de enlaces directos de este modo está permitido, pero resulta problemático por varias razones: It is currently technically possible to load images directly from Wikimedia's servers in the context of any webpage. Such hotlinking is allowed, but it is problematic for multiple reasons:
- No respeta los términos de licencia de la imagen, y no permite la transferencia de forma fiable de otra información extra (metadatos) que también sería deseable transferir
- Además de no dar el crédito correspondiente al autor del archivo multimedia, tampoco da ningún reconocimiento a Wikimedia
- Consume ancho de banda de Wikimedia cada vez que se visita una página (a menos que la imagen se haya almacenado en caché en el lado del cliente o mediante un proxy; esta funcionalidad está actualmente deshabilitada de forma predeterminada)
- No facilita ciertas operaciones útiles que será interesante llevar a cabo, como la generación de diapositivas o el añadido de pies de foto, y es difícil de usar en el contexto de un wiki, particularmente para operaciones comunes de presentación de contenidos
- Es un sistema atado a los URLs como identificadores de recursos, lo que dificulta el uso de espejos
- Crea una web con un uso de recursos externos no monitorizable, donde cualquier cambio en el lado de Wikimedia afectaría necesariamente a los usuarios externos
- No permite el visionado sin conexión a Internet, algo crucial en países que sólo cuentan con un acceso intermitente a la red.
InstantCommons busca dar solución a todo esto proporcionando un método sencillo de carga de imágenes y metadatos cacheados a partir de información obtenida de los servidores de Wikimedia. Although caching functionality is part of the objective, it has been disabled since MediaWiki 1.27.2/1.28.1. InstantCommons was first implemented within MediaWiki, allowing for all MediaWiki image operations (thumbnailing, captioning, galleries, etc.) to be performed transparently. Sin embargo, otros motores wiki pueden implantar una funcionalidad similar usando las operaciones a nivel de API que se describen más abajo.
Características básicas
Durante la instalación, el administrador del sitio puede decidir si quiere activar InstantCommons. Lo ideal, sin embargo, sería que esta característica estuviese activada por defecto (suponiendo que se indique un directorio para las subidas en el que MediaWiki pueda escribir) para permitir que el mayor número posible de usuarios utilice los contenidos de Wikimedia Commons.
Si la característica está activada, el wiki se comporta como cualquier proyecto de Wikimedia, es decir, si se hace referencia a una imagen o cualquier archivo multimedia que existe en Commons, puede incluirse en una página del wiki como cualquier otro archivo subido de forma local, indicando simplemente su nombre. Si existe un archivo local con ese nombre, tendrá preferencia sobre el contenido de Commons.
Configuración
Default method: $wgUseInstantCommons
Para habilitar InstantCommons en MediaWiki versión 1.16 o posterior, es suficiente agregar esta línea a su LocalSettings.php
(vea $wgUseInstantCommons para más detalles):
$wgUseInstantCommons = true;
Para activarlo en las versiones 1.13-1.15 de MediaWiki, mira Manual:$wgForeignFileRepos#Using files from Wikimedia Commons : ForeignAPIRepo .
This feature should work immediately. If it's not, check if the PHP function curl_exec()
is disabled in your web server.
A HTTP Proxy is configured for cURL with $wgHTTPProxy .
Classic InstantCommons with local thumb caching
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
Desde junio de 2015, Wikimedia Commons sólo es accesible por medio de HTTPS. Algunas instalaciones pueden carecer de su almacén de certificados raíz, impidiendo que MediaWiki pueda conectarse a Commons mediante HTTPS. Si InstantCommons deja de funcionar, prueba:
- Instala la extensión php curl (generalmente es más fiable y más probable que disponga de los certificados necesarios ya instalados). En Debian/Ubuntu:
sudo apt-get install php5-curl
- Asegúrate de que tienes un almacén de certificados al día. Si tienes instalada la extensión de curl para php, sigue las instrucciones webaware o Talk:InstantCommons#Stop_working.
SElinux
Si tu OS de servidor es SElinux, por favor, consulta la sección dedicada en la SELinux , y asegúrate de que los scripts y módulos HTTPD pueden acceder a la red. Si SElinux impide que los scripts y módulos HTTPS conecten con el repositorio de Wikimedia Commons, InstantCommons simplemente no funcionará.
Detrás de un cortafuegos
Si el servidor en el que corre el wiki se encuentra detrás de un cortafuegos, el servidor wiki debe disponer de la posibilidad de enviar peticiones http/https a commons.wikimedia.org y upload.wikimedia.org para que InstantCommons funcione. El rango de direcciones IP puede consultarse en wikitech:IP addresses.
Uso de archivos mediante InstantCommons
Teniendo activado InstantCommons, puedes elegir cualquier imagen de Wikimedia Commons (por ejemplo ésta), pulsar el botón "Usar este archivo" (el botón que tiene a su lado un icono de wiki) y pegar el código en tu wiki. En nuestro ejemplo, pegar
[[File:Wikipedia-Marker-commons.svg|thumb|Una foto de Wikimedia Commons utilizada en este wiki]]
hará que aparezca la vista en miniatura, tal como puede verse al lado derecho de esta página.
Fíjate en que al usar archivos de este modo, sigues teniendo la obligación de respetar los términos de su licencia y cualquier otro requerimiento legal establecido sobre su uso - mira Commons:Reutilización del contenido fuera de Wikimedia.
Consideraciones de escalabilidad
Dado que la característica InstantCommons permite a un usuario de un wiki descargar recursos de los servidores de Wikimedia, resulta crucial que no exista la posibilidad de un ataque de Denegación de Servicio, ni contra el wiki que usa el contenido ni contra Wikimedia Commons, por ejemplo pegando 30K de enlaces a los archivos más grandes de Wikimedia Commons en una página del wiki y pulsando "Mostrar previsualización". Por lo tanto, cada petición atendida de InstantCommons deberá ser registrada por el wiki que tiene esta característica activada junto con el nombre de usuario o dirección IP del usuario originario de la petición y la fecha y hora en las que tuvo lugar. Si un usuario sobrepasa una generosa limitación de ancho de banda interno (que podría ser de hasta 1 GB por defecto, pero debería ser configurable), las futuras imágenes no se descargarán hasta transcurrido un plazo de 24 horas. Esta limitación no debería existir en el caso de los administradores de los wikis (si un administrador quiere lanzar un ataque DoS contra su propio wiki, no hay por qué impedírselo; y si alguno quisiera dirigir un ataque así contra Wikimedia, no se podría impedir salvo desde el lado de Wikimedia). Además del límite de ancho de banda por usuario, podría haber un límite en el tamaño de los archivos que pueden descargarse de este modo. Ésto sería así principalmente porque a partir de ciertas dimensiones, los archivos enlentecerían de forma significativa la carga de las páginas, pudiendo incluso hacer que la petición caducase antes de llevarse a cabo. Podría ser deseable recurrir a una aplicación externa para descargar estos archivos, de forma que pudiera hacerse en un segundo plano mientras se procesa la carga de la página. Por último, podría haber un tamaño máximo total para el caché de InstantCommons; en caso de exceder este tamaño, no se descargarían más archivos.
Aunque sería poco probable que los wikis individuales que usaran la función InstantCommons causasen un incremento significativo en gastos para la Fundación Wikimedia (dado que cada archivo sólo tiene que descargarse una vez, y se entiende que habría limitaciones de ancho de banda por cada usuario), de todos modos sería justo y razonable que los proyectos que usaran esta función incluyesen una nota en las páginas de descripción de archivos de InstantCommons, como por ejemplo: "Este archivo procede de Wikimedia Commons, un archivo multimedia hospedado por la Fundación Wikimedia. Si deseas apoyar a la Fundación Wikimedia, puedes hacer tu donación aquí..."
Futuro potencial
En el futuro, puede ser deseable ofrecer un modelo de cambios editor/suscriptor, lo cual requerirá autentificación de wiki a wiki y una base de datos con imágenes que se usan en los wikis suscritos. Esto también abriría la puerta a la amenaza de vandalismo entre wikis, que podría solucionarse empleando un desfase de 24 horas o más entre el momento en el que se hacen cambios y el momento en que éstos tienen efecto real. Otra posibilidad sería una funcionalidad de dos vías, es decir, permitir subir archivos multimedia libres directamente a Commons desde cualquier wiki. Sin embargo, esto exigiría como mínimo autentificación federada. También puede hacer falta un sistema de comunicación entre wikis que comunique a los usuarios de otros wikis las políticas de Commons, que podría ser parte de un proyecto más grande como LiquidThreads .
Véase también
- Manual:$wgForeignFileRepos - para tener la misma funcionalidad que InstantCommons pero con otros wikis
- PhotoCommons — Extensión para Wordpress que proporciona la misma funcionalidad
- Examples of sites which are using InstantCommons
- Extension:QuickInstantCommons