Manual:$wgForeignFileRepos

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgForeignFileRepos and the translation is 51% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎magyar • ‎Ελληνικά • ‎中文 • ‎日本語 • ‎한국어
Shared uploads: $wgForeignFileRepos
Un 'array' de estructura de repositorio para repositorios externos.
Introducido en la versión:1.11.0 (r22580)
Eliminado en la versión:aún se usa
Valores permitidos:(array)
Valor predeterminado:(véase abajo)

Detalles

Advertencia Advertencia: When using Wikimedia Commons it is required to use HTTPS for links, instead of HTTP. As of 2015, Wikimedia Foundation redirects traffic from HTTP to HTTPS. For security reasons MediaWiki does not follow such redirects (see task T102566).

The solution is to use HTTPS in the URLs for Wikimedia Commons! If you use $wgUseInstantCommons, this issue is automatically fixed by using MediaWiki 1.25.2 or newer. If you have defined custom settings with $wgForeignFileRepos for Wikimedia Commons, then the URLs must be adjusted accordingly!

Propiedades requeridas para todos los repositorios:

class
El nombre de clase del repositorio. Puede venir desde el núcleo o una extensión. Las clases de repositorio de núcleo son LocalRepo, ForeignDBRepo, FileRepo y ForeignAPIRepo.
name
Un nombre único para el repositorio.

For all core repos

url
URL base, pública
thumbUrl
Base thumb url, if different from url/thumb
hashLevels
El número de directorios nivel para la división basada en hash de archivos
thumbScriptUrl
La URL de thumb.php (opcional, no recomendado)
transformVia404
Para ignorar la transformación del archivo en parse y en vez de eso usar un manipulador de 404s.
initialCapital
Equivalente a [[$wgCapitalLinks|$wgCapitalLinks]], determina si los nombres de archivo empiezan implícitamente con una letra capital o no. La implementación actual puede dar enlaces a páginas de descripción incorrectos cuando$wgCapitalLinks e initialCapital se encuentran mal configurados localmente.
pathDisclosureProtection
Puede usarse 'paranoid' para remover todos los parámetros de los mensajes de error, 'none' para dejar los directorios sin cambiar, o 'simple' para reemplazar los directorios con marcadores de posición (ó "placeholders"). El valor por defecto de LocalRepo es 'simple'. Note, some image thumbnailing software puts the thumbnail path into the resulting thumb's metadata, so this setting may not provide full protection.
descBaseUrl
URL de las páginas de descripción, ejemplo: http://en.wikipedia.org/wiki/Image:
scriptDirUrl
URL de la instalación MediaWiki, equivalente a $wgScriptPath, ejemplo: $eg1 https://en.wikipedia.org/w
articleUrl
Equivalente a $wgArticlePath, ejemplo: $eg2 https://en.wikipedia.org/wiki/$1
fetchDescription
Obtiene el texto de la página de descripción remota. Equivalente a [[$wgFetchCommonsDescriptions|$wgFetchCommonsDescriptions]].
Advertencia Advertencia: Due to a bug in MediaWiki, the foreign wiki should have a full, or protocol-relative (but not a generally relative) url in $wgUploadPath, or description pages with images on them won't be fetched properly.
descriptionCacheExpiry
Si tiene el valor 0, no se usará el caché. Use 1 o más (segundos) para definir cuánto se quedará el caché de las páginas de descripción. Se debe configurar fetchDescription como "true" para poder usarlo.

Clase ForeignAPIRepo

apibase
La URL base para el API del repositorio remoto (ejemplo: https://commons.wikimedia.org/w/api.php). Sólo usado para ForeignAPIRepo.
apiThumbCacheExpiry

Cuanto durará el caché de miniaturas localmente. No activar esto, o configurandolo con "0", deshabilita el caché de miniaturas localmente.

Clase ForeignDBRepo

directory
A path to MediaWiki's media directory local to the server, such as /var/www/wiki/images.
dbType, dbServer, dbUser, dbPassword, dbName, dbFlags
equivalente al miembro correspondiente de [[$wgDBservers|$wgDBservers]]
tablePrefix
Prefijo de la tabla, el [[$wgDBprefix|$wgDBprefix]] del wiki remoto
hasSharedCache
"true" si el cache del wiki es compartido y accesible vía el $wgMemc local
favicon
A favicon for the remote repository

Valores por defecto (código en includes/Setup.php):

if ( $wgUseSharedUploads ) {
	if ( $wgSharedUploadDBname ) {
		$wgForeignFileRepos[] = [
			'class' => 'ForeignDBRepo',
			'name' => 'shared',
			'directory' => $wgSharedUploadDirectory,
			'url' => $wgSharedUploadPath,
			'hashLevels' => $wgHashedSharedUploadDirectory ? 2 : 0,
			'thumbScriptUrl' => $wgSharedThumbnailScriptPath,
			'transformVia404' => !$wgGenerateThumbnailOnParse,
			'dbType' => $wgDBtype,
			'dbServer' => $wgDBserver,
			'dbUser' => $wgDBuser,
			'dbPassword' => $wgDBpassword,
			'dbName' => $wgSharedUploadDBname,
			'dbFlags' => ( $wgDebugDumpSql ? DBO_DEBUG : 0 ) | DBO_DEFAULT,
			'tablePrefix' => $wgSharedUploadDBprefix,
			'hasSharedCache' => $wgCacheSharedUploads,
			'descBaseUrl' => $wgRepositoryBaseUrl,
			'fetchDescription' => $wgFetchCommonsDescriptions,
		];
	} else {
		$wgForeignFileRepos[] = [
			'class' => 'FileRepo',
			'name' => 'shared',
			'directory' => $wgSharedUploadDirectory,
			'url' => $wgSharedUploadPath,
			'hashLevels' => $wgHashedSharedUploadDirectory ? 2 : 0,
			'thumbScriptUrl' => $wgSharedThumbnailScriptPath,
			'transformVia404' => !$wgGenerateThumbnailOnParse,
			'descBaseUrl' => $wgRepositoryBaseUrl,
			'fetchDescription' => $wgFetchCommonsDescriptions,
		];
	}
}

ForeignDBViaLBRepo class

wiki
wiki-db-name used in $wgLBFactoryConf


Permisos de directorio

Necesitarás permiso de escritura en $IP/images y $IP/images/thumbs para el usuario con el que se ejecuta php.

Uso

Versión de MediaWiki: 1.13

Usando archivos de Wikimedia Commons : ForeignAPIRepo

Desde 1.16.0 hay una forma más corta y conveniente de usar Commons como repositorio remoto: $wgUseInstantCommons.

Puedes configurar tu wiki para que use medios de Wikimedia Commons (o de cualquier otro sitio que use MediaWiki, véase más abajo) directamente. Sin embargo, por favor ten cuidado con cualquier implicación legal.

Para usar esto, necesitas:

  • MediaWiki 1.13 +
  • PHP con soporte JSON (para la función json_decode()). JSON está habilitado por defecto desde PHP 5.2.0, aunque necesitarás la extensión PECL para versiones anteriores. Desde MediaWiki 1.16, ésto no es necesario; v. 1.16 usará código personalizado (y lento) si JSON no está disponible.
  • El wiki remoto debe usar también MediaWiki 1.13 ó posterior; de lo contrario su api.php da {"error":{"code":"iiunknown_iiprop","info":"Unrecognised values for parameter 'iiprop'"}} y las transferencias de archivos fallan silenciosamente (ejemplo: los archivos requeridos son tratados como no existentes).

The code below enables media files from Wikimedia Commons on your site. You should place it to localsettings.php.

$wgForeignFileRepos[] = [
	'class' => 'ForeignAPIRepo',
	'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
];
If you decide to add this setting to your "LocalSettings.php" file instead of using $wgUseInstantCommons you cannot use wikimediacommons as a setting for name since it is already present in core MediaWiki code (in "Setup.php").

Para tomar archivos de otro proyecto Wikimedia, cambie apibase a algo como http://en.wikipedia.org/w/api.php, por ejemplo.

Ejemplo:

$wgForeignFileRepos[] = [
	'class' => 'ForeignAPIRepo',
	'name' => 'enwiki',
	'apibase' => 'https://en.wikipedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true,
	'descriptionCacheExpiry' => 43200,
	'apiThumbCacheExpiry' => 86400,
];

Para poner una imagen en tu instalación, simplemente usa imagen:nombre de la imagen de commons.jpg.

Puede que necesites configurar [[$wgMainCacheType|$wgMainCacheType]] también. Por defecto se encuentra configurado a CACHE_NONE, que significa que cargará la imagen del host remoto en cada carga de página.

Usando archivos de una base de datos que puedes acceder : ForeignDBRepo

La clase ForeignDBRepo es muy útil para crear familias wiki. En una familia wiki, cada wiki tendrá su propia base de datos o prefijo de tabla. Usando esta clase, puedes 'conectar' las tablas de un miembro de la familia con otro.

Acceso via ForeignDBRepo es más rápido que por vía ForeignAPIRepo. Éste código debe ser añadido a LocalSettings.php.

$wgForeignFileRepos[] = [
	'class' => 'ForeignDBRepo',
	'name' => 'otherwiki',
	'url' => "https://example.org/w/images",
	'directory' => '/path/to/uploads',
	'hashLevels' => 2, // This must be the same for the other family member
	'dbType' => $wgDBtype,
	'dbServer' => $wgDBserver,
	'dbUser' => $wgDBuser,
	'dbPassword' => $wgDBpassword,
	'dbFlags' => DBO_DEFAULT,
	'dbName' => 'mydb',
	'tablePrefix' => 'mw_',
	'hasSharedCache' => false,
	'descBaseUrl' => 'https://example.org/wiki/File:',
	'fetchDescription' => false
];

Alternatively, if you have $wgLBFactoryConf set up for multiple wikis, you can use 'class' => 'ForeignDBViaLBRepo':

$wgForeignFileRepos[] = [
	'class' => 'ForeignDBViaLBRepo',
	'wiki' => 'wiki-db-name-used-with-wgLBFactoryConf',
	'name' => 'otherwiki', # displayname (eg. the vector-skin-tab “View on OtherWiki“) may be set at wiki-specific MediaWiki:Shared-repo-name-<otherwiki>
	'url' => 'https://example.org/w/images',
	'directory' => '/path/to/uploads',
	'hashLevels' => 2, # This must be the same for the other family member
	'tablePrefix' => 'mw_',
	'hasSharedCache' => false,
	'fetchDescription' => true,
	'scriptDirUrl' => 'https://example.org/w', # has effect whether description can be fetched
];

This needs not all the db* parameters as in ForeignDBRepo.

Usando archivos de un directorio local : FileRepo

Puedes hacer que tu wiki use archivos de una carpeta. Esta es una función de demostración actualmente, y puede que sea muy lenta para wikis activos o servidores lentos debido a la falta de caching.

Éste codigo debe ser añadido a LocalSettings.php.

$wgForeignFileRepos[] = [
	'class' => 'FileRepo',
	'name' => 'sharedFsRepo',
	'directory' => 'media/',
	'hashLevels' => 0,
	'url' => 'https://shared.example.org/path/to/uploads/',
];

Caveats

For optimal performance, use a wiki whose primary purpose is to serve as a commons as the target of $wgForeignFileRepos. Avoid, for instance, pointing two content wikis at each other as foreign repositories in order to share files between them, because this will generate an excessive number of file requests on page views and edits as both wikis request the file from each other.

Likewise, avoid sharing a database between the commons wiki and other content wikis, especially if you must use ForeignAPIRepo instead of ForeignDBRepo due to limitations imposed by your service provider or administrator. This generates a large number of potentially long-lived database connections that can result in impaired performance, or can exceed DB connection limits even on wikis with very little traffic or activity.

Véase también