Jump to content

即时共享资源

本頁使用了標題或全文手工轉換
本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page InstantCommons and the translation is 97% complete.
Outdated translations are marked like this.
在任何已安装MediaWiki的地方,输入一个维基共享资源的图片名称…
…該图片就能從维基共享之中信手拈來、嵌入到页面中

即时共享资源(InstantCommons)是一項MediaWiki的功能,它可讓全世界任何一个已安裝MediaWiki的裝置,使用维基共享资源裏任何已上传的媒体文件。

理论基础

截至2023年11月,维基共享资源,作为由维基媒体基金会托管的中心媒体仓库,包含了超过1亿个文件。 这些文件中的每一个都可以在自由内容授權下或在公共領域中获得;除涉及使用官方徽章或商标的情况外,无其他使用限制。 限制商业用途的授权被视为非自由。

随着对共享资源的认识不断提高,外界各方想要使用其中内容,并贡献新素材的渴望也不断上升。 在任何网页的上下文中直接从维基媒体的服务器加载图像,目前在技术上是可行的。这样的热链接是允许的,但由于多种原因它會造成問題:

  • 它不尊重图像的许可条款,也不允许其他元数据可靠地传输
  • 它除了没有恰当地归功于媒体文件的作者,也没有归功于维基媒体
  • 它会在每个网页浏览中消耗维基媒体带宽(除非图像已在客户端或通过代理缓存,但此功能当前被默认关闭)
  • 它不利于缩略图生成和字幕等有用的图像操作,并且难以在Wiki的上下文中使用,特别是对于标准布局操作
  • 它与URL绑定为资源标识符,这使镜像操作变得复杂
  • 它创建了一个无法跟踪的外部使用网站,维基媒体方面的任何变化必然会影响在那裏的外部用户
  • 它不允许离线查看,这网络仅能斷斷續續访问的国家中是至关重要的

即时共享资源试图通过提供一种从维基媒体的服务器上對图像和元数据的加载進行缓存的简单方法来應付这一切。 尽管缓存功能是目标的一部分,但它自從Mediawiki 1.27.2/1.28.1版之後已被停用。 即时共享资源的第一次实现将在MediaWiki内进行,允许所有的MediaWiki图像操作(缩略图、字幕、画廊等)透明地进行。 然而,其他的wiki引擎透過使用API的操作也可以实现类似即时共享资源的功能,此操作將在下面描述。

基本功能设置

在安装过程中,站点管理员可以选择是否启用即时共享资源。然而,在理想情况下,该功能在默认情况下应該被启用(只要是已有指定可写入的上载目录),以允许尽可能多的用户使用维基共享资源内容。

如果该功能有被启用,则wiki的行为就像是一個维基媒体的项目,也就是,如果引用某個存在于维基共享资源上的图像或其他媒体文件,它可以像本地上传的文件一样通过指定其名称被包含在wiki页面中。本地的文件名优先于维基共享资源的文件名。

配置

默认的方法: $wgUseInstantCommons

要在MediaWiki 1.16版或更高的版本中启用即时共享资源,只需将此行添加到LocalSettings.php即可(有关详细信息,请参阅$wgUseInstantCommons ):

$wgUseInstantCommons = true;

带有本地缩略图缓存的典型即时共享资源

通过$wgUseInstantCommons启用的默认即时共享资源会使用热链接自维基媒体的缩略图。[1] 这可能会很慢,也可能会干扰文件的缓存(表现为损坏的链接)。 如果你想在你的本地服务器上生成並使用缩略图,请不要使用$wgUseInstantCommons。 取而代之的是,按照这里的描述,将这段代码插入LocalSettings.php中:Manual:$wgForeignFileRepos#Usage

$wgForeignFileRepos[] = [
	'class' => ForeignAPIRepo::class,
	'name' => 'commonswiki', // 必须是一个與其他不同的名称
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true, // 可選的
	'descriptionCacheExpiry' => 43200, // 12小时,可选的(数值为秒)
	'apiThumbCacheExpiry' => 86400, // 24小时,可选的,但对於本地缩略图缓存則是必需的
];

通过即时共享资源使用文件

来自维基共享资源的图片嵌入在这个Wiki中

启用即时共享资源后,您可以从维基共享资源中选择任何图像(例如这个),单击“使用此文件”按钮(带有wiki图标按钮的旁边)并将标记粘贴到您的wiki中。 在我们的例子中,粘贴

[[File:Wikipedia-Marker-commons.svg|thumb|来自维基共享资源的图片嵌入在这个Wiki中]]

将渲染這個缩略图(如本页的右侧所示)。

请注意,在以这种方式使用文件时,您仍需要遵守任何许可或其他在文件的使用上的法律要求 - 请参阅维基共享资源:內容在維基媒體外的二次使用

故障排除

通用缩略图尺寸

自2026年初,维基媒体的图像服务器会偏向于生成预定宽度的缩略图。 请求这些预定宽度以外的大小时会有非常严格的速率限制。 The 通用缩略图尺寸 can be used along with $wgThumbnailSteps to limit the image sizes used in the ‎<img> HTML tags generated by MediaWiki. When active these settings make your MediaWiki emit HTML that puts whatever width and height attribute is appropriate on generated ‎<img> tags while also selecting the exact match or next largest width from the step sizes for the image requested from upload.wikimedia.org. 向你的LocalSettings.php添加$wgThumbnailSteps = [20, 40, 60, 120, 250, 330, 500, 960, 1280, 1920, 3840];$wgThumbnailStepsRatio = 1;会使你的MediaWiki匹配到期待的大小。

用户代理政策

如果你的wiki被维基共享资源限流,请升级到MediaWiki 1.39.14或以上,以遵守用户代理政策

自2025年起,维基共享资源可能会将你的wiki归类为来源不明,并对其请求进行限流或拦截。 这是由于执行了维基媒体基金会用户代理政策,以缓解自动抓取行为的增加。

在MediaWiki 1.45以前,即时共享资源的User-Agent(用户代理)请求头不包括政策所要求的来源URL。 如果你在使用即时共享资源时遇到一个限流消息,请升级到MediaWiki 1.45.0(或MediaWiki 1.39.14+、1.43.4+或1.44.1+),这些版本会设置一个符合要求的请求头,内含wiki的服务器URL。 高流量wiki可能额外需要验证服务器的IP段,以遵守机器人流量要求

HTTPS

从2015年6月开始,只能使用HTTPS访问维基共享资源。某些安装可能缺少其根证书的存储,这会阻止MediaWiki通过HTTPS与维基共享资源联系。如果即时共享资源停止工作,请尝试:

  • 安装php curl扩展(它通常更可靠,并且更有可能已安装适当的证书)在Debian/Ubuntu上:sudo apt-get install php-curl
  • 确认您拥有最新的证书的存储。如果您已安装了php curl扩展,请按照指令webaware或者Talk:InstantCommons#Stop_working
  • 确定你的Web服务器中没有禁用PHP函数curl_exec()

SElinux

如果您的服务器操作系统实现了SElinux,请查看SELinux 设置页面上的專屬章節,并确保HTTPD脚本和模块可以成功地访问网络。 如果SElinux阻止HTTPD脚本和模块连接到维基共享资源的存储库,则即时共享资源功能将无法正常工作。

防火墙后

如果运行wiki的服务器位于防火墙后面,wiki服务器被允许对commons.wikimedia.org和upload.wikimedia.org發出http/https请求,以便讓即时共享资源能够工作。IP地址的范围可在wikitech:IP addresses中找到。

如果您需要使用代理从防火墙后访问互联网,请参见 $wgHTTPProxy

參見

参考资料