如何从MediaWiki中导出和导入图像?
答案 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 }}
对于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步:需要备份吗?安装图像的副本? ...你只需要sed
和Mediawiki 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的--current
和dumpContent.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 title和all 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中找到的功能
例如