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

有帮助吗?

解决方案

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

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

其他提示

终端解决方案

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

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

原始图像文件夹

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

媒体维基的 images 文件夹可以压缩为 zip -r ~/Mediafiles.zip images 命令,但这个 zip 不太好:

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

  • 为了 数据交换 或长期 保存 猪,无效……这 丑陋的 images/?/??/* 文件夹格式 不适合,像往常一样“所有图像文件都在一个文件夹中”。

图像导出/导入

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

步骤1: 使用生成图像转储 转储上传 (和 --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

该命令会生成图像备份文件夹的标准 zip 文件, Mediafiles.zip 在您的用户根目录(~/).

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

 php maintenance/dumpUploads.php \
   | sed 's~mwstore://local-backend/local-public~./images~' \
   | zip ~/Mediafiles.zip -@

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

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

步骤3: 恢复转储(到新的维基)、配备维修工具。假设您使用步骤 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

就这些。检查,在您的新 Wiki 中导航 特别:新文件.


完整导出或保存

用于导出旧 MediaWiki 的“所有图像和所有文章”,以进行完整备份或 内容保存. 。在每一步添加一些过程:

步骤1: ...参见上面的步骤 1...并且,生成文本内容转储 来自旧维基

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

笔记:代替 --full 你可以使用 --current 选项。

第2步: ...你需要 dumpContent.xml.zipMediafiles.zip...来自旧维基。假设两个 zip 文件都位于您的 ~ 文件夹。

步骤3: 跑步 在你的新维基中

 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

就这些。还检查 特别:所有页面 新维基的。

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

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

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

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

MultiUpload - http://www.mediawiki.org/维基/扩展:MultiUpload

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

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

曾经可用,但是自1月起已弃用。 13,2010

- 导出全部:

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

步骤1: :使用API​​获取 所有页面标题所有图片网址. 。您可以编写一些代码来自动执行此操作。

第2步: :接下来,您使用[Special:Export]导出带有您获得的标题的所有页面,并使用 wget 获取您有链接的所有图像(像这样 wget -i img-list.txt).

- 导入全部:

步骤1: :使用 [Special:Import] 导入页面

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top