在MediaWiki中导出和导入图像

时间:2009-06-16 15:30:21

标签: image import export mediawiki

如何从MediaWiki中导出和导入图像?

6 个答案:

答案 0 :(得分:7)

终端解决方案

MediaWiki管理员,在服务器终端,可以执行maintenance tasks using the Maintenance scripts framework。新的Mediawiki版本在下面描述的任务中运行所有标准脚本,但旧版本有一些错误或没有所有现代脚本:按grep wgVersion includes/DefaultSettings.php检查版本号

注意:所有引用的(下方)脚本都有--help选项,例如为php maintenance/importImages.php --help

原始图像文件夹

用户通过Special:Upload页面上传文件;管理员可以通过扩展白名单配置允许的文件类型。上传后,文件存储在文件系统的文件夹中,缩略图存放在专用的拇指目录中。

Mediawiki的images文件夹可以使用zip -r ~/Mediafiles.zip images命令压缩,但这个拉链不太好:

  • 有很多过时的文件:“已删除文件”和“旧文件”(不是当前),文件名为20160627184943!MyFig.png,缩略图为{{1 }}

  • {li>

    对于data-interchange或长期preservation porpurses,它无效...... 丑陋的MyFig.png/120px-MyFig.jpg文件夹格式不适合,因为通常“只有一个文件夹中的所有图像文件”。

图像导出/导入

对于MediaWiki服务器终端上的“导出和导入”一个文件夹中的所有当前图像,有一个逐步的单个过程。

步骤1:使用 dumpUploads (在保存需要时使用images/?/??/*--local选项)生成图像转储,创建< em> txt 正在使用的所有图像文件名列表。

--shared

该命令会在您的用户根目录(mkdir /tmp/workingBackupMediaFiles php maintenance/dumpUploads.php \ | sed 's~mwstore://local-backend/local-public~./images~' \ | xargs cp -t /tmp/workingBackupMediaFiles zip -r ~/Mediafiles.zip /tmp/workingBackupMediaFiles rm -r /tmp/workingBackupMediaFiles )处生成映像备份文件夹Mediafiles.zip的标准zip文件。

注意:如果您不担心丑陋的文件夹结构,更直接的方法是

~/

根据Mediawiki版本, php maintenance/dumpUploads.php \ | sed 's~mwstore://local-backend/local-public~./images~' \ | zip ~/Mediafiles.zip -@ 选项可以正常工作,您可以删除管道的--base=./命令。

第2步:需要备份吗?安装图像的副本? ...你只需要sedMediawiki installed,没有内容......如果Wiki有内容,请检查文件夹混淆问题(!)。另一个问题是文件格式和权限的配置,在新Wiki中必须相同或更广泛,请参阅Manual:Configuring file uploads

步骤3:使用维护工具恢复转储(到新Wiki )。假设您使用step-1导出并保存在zip文件中,

Mediafiles.zip

就是这样。检查,在新的Wiki Special:NewFiles

中查找

完全导出或保存

用于导出旧MediaWiki的“所有图像和所有文章”,以进行完整备份或content preservation。在每一步添加一些程序:

步骤1: ...请参阅上述第1步...以及从旧Wiki 生成文本内容转储

unzip ~/Mediafiles.zip -d /tmp/workingBackupMediaFiles php maintenance/importImages.php /tmp/workingBackupMediaFiles rm -r /tmp/workingBackupMediaFiles php maintenance/update.php php maintenance/rebuildall.php

注意:您可以使用php dumpBackup.php --full | gzip | ~/dumpContent.xml.gz选项代替--full

第2步: ...您需要来自旧Wiki的--currentdumpContent.xml.zip ...假设您的Mediafiles.zip文件夹中的两个zip文件。

步骤3:在新Wiki中运行

~

就是这样。还要检查新Wiki的 Special:AllPages

答案 1 :(得分:6)

没有自动导出图像的方法,例如导出页面,您必须右键单击它们,然后选择“保存图像”。要获取图像页面的历史记录,请使用Special:Export页面。

要导入图片,请使用维基上的Special:Upload页面。如果你有很多,你可以使用Import Images script.注意:你通常必须在sysop组中上传图像。

答案 2 :(得分:1)

有一些大量上传工具可用。

Commonist - www.djini.de/software/commonist /

两者都在桌面上运行,可以配置为上传到您的本地维基(默认情况下,它们是为维基百科和维基媒体公共配置的)。如果你害怕编辑.jar文件的内容,我建议你从Commonplace开始。

Mediawiki本身存在另一个有用的扩展。

MultiUpload - http://www.mediawiki.org/wiki/Extension:MultiUpload

此扩展程序允许您将图像放在文件夹中并立即加载它们。如有必要,它支持每个文件的注释,并在文件夹完成后清理它。在缺点方面,它需要在服务器端打开一个共享文件夹。

Commonplace - commons.wikimedia.org/wiki/Commons:Tools/Commonplace

曾经可用,但它是deprecated as of Jan. 13, 2010

答案 3 :(得分:1)

- 导出全部:

您可以使用[API]从MediaWiki网站获取所有页面和所有图像,即使您不是网络的所有者(当然,当所有者未禁用此功能时):

第1步:使用API​​获取all pages titleall images url。您可以编写一些代码来自动完成。

第2步:接下来,您使用[特殊:导出]导出包含所有标题的所有网页,然后使用wget获取您拥有链接的所有图片(例如{{ 1}})。

- 导入所有:

第1步:使用[特殊:导入]

导入页面

第2步:使用[Manual:ImportImages.php]导入图片。

答案 4 :(得分:0)

答案 5 :(得分:0)

作为MediaWiki-Japi的提交者,我想指出:

关于用例将包含图像的页面从一个wiki推送到另一MediaWiki-Japi的用例,现在具有命令行模式,请参见 Issue 49 - Enable commandline interface with page transfer option

否则,您可以使用MediaWiki-Api和您选择的语言,并使用在PushPages.java中找到的功能

例如