在MediaWiki中导出和导入图像

Par*_*ius 9 import mediawiki export image

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

Pet*_*uss 8

终端解决方案

服务器终端的MediaWiki管理员可以使用维护脚本框架执行维护任务.Mediawiki的新版本在下述任务运行所有标准的脚本,但旧版本有一些错误或不具备所有现代人的脚本:检查版本号通过 grep wgVersion includes/DefaultSettings.php.

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

原始图像文件夹

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

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

  • 有很多过时的文件:"已删除文件"和"旧文件"(不是当前文件),文件名为20160627184943!MyFig.png,缩略图为MyFig.png/120px-MyFig.jpg.

  • 对于数据交换或长期保存 porpurses,它是无效的... 丑陋的images/?/??/*文件夹格式不适合,像往常一样"只有一个文件夹中的所有图像文件".

图像导出/导入

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

步骤1:使用dumpUploads(在保存需要时使用--local--shared选项)生成图像转储,创建正在使用的所有图像文件名的txt列表.

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
Run Code Online (Sandbox Code Playgroud)

该命令将生成映像备份文件夹的标准zip文件,Mediafiles.zip位于用户根目录(~/).

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

 php maintenance/dumpUploads.php \
   | sed 's~mwstore://local-backend/local-public~./images~' \
   | zip ~/Mediafiles.zip -@
Run Code Online (Sandbox Code Playgroud)

根据Mediawiki版本,该--base=./选项将正常工作,您可以删除sed管道的命令.

第2步:需要备份吗?安装图像的副本?...你只需要Mediafiles.zip,并且安装Mediawiki,没有内容......如果Wiki有内容,请检查文件夹conflicks(!)的问题.另一个问题是文件格式和权限的配置,在新Wiki中必须相同或更广泛,请参见手册:配置文件上载.

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

 unzip ~/Mediafiles.zip -d /tmp/workingBackupMediaFiles
 php maintenance/importImages.php  /tmp/workingBackupMediaFiles
 rm -r /tmp/workingBackupMediaFiles 
 php maintenance/update.php
 php maintenance/rebuildall.php
Run Code Online (Sandbox Code Playgroud)

就这些.检查,在你的新Wiki 特别版:NewFiles中查找.


完全出口或保存

用于导出旧MediaWiki的"所有图像和所有文章",以进行完整备份或内容保留.在每个步骤添加一些程序:

步骤1: ...参见上面的步骤1 ...以及从旧的Wiki生成文本内容转储

php dumpBackup.php --full | gzip | ~/dumpContent.xml.gz

注意:--full您可以使用该 --current选项代替.

第2步: ......你需要dumpContent.xml.zipMediafiles.zip......从旧的Wiki.假设您的~文件夹中有两个zip文件.

第3步:在新的Wiki中运行

 unzip ~/Mediafiles.zip -d /tmp/workingBackupMediaFiles
 gunzip -c  ~/dumpContent.xml.gz 
   | php maintenance/importDump.php  --no-updates \
   --image-base-path=/tmp/workingBackupMediaFiles
 rm -r /tmp/workingBackupMediaFiles 
 php maintenance/update.php
 php maintenance/rebuildall.php
Run Code Online (Sandbox Code Playgroud)

就这些.还要检查特殊:新Wiki的所有页面.


Adr*_*her 6

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

要导入图像,请使用Wiki上的Special:Upload页面.如果您有很多,可以使用" 导入图像"脚本.注意:您通常必须在sysop组中才能上传图像.