Экспорт и импорт изображений в MediaWiki - PullRequest
9 голосов
/ 16 июня 2009

Как экспортировать и импортировать изображения из и в MediaWiki?

Ответы [ 5 ]

8 голосов
/ 07 января 2012

Терминальные решения

Администратор MediaWiki на терминале сервера может выполнять задачи обслуживания, используя Сценарии обслуживания framework . Новые версии 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, это недопустимо ... Формат папки ugly 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

Команда приводит к стандартному 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 есть содержимое, проверьте проблемы с конфликтами имен файлов (!). Другая проблема - это конфигурация форматов файлов и разрешений, которые должны быть такими же или более широкими в новой вики, см. Руководство: настройка загрузки файлов .

Шаг 3: восстановить дампы ( для новой Wiki ) с помощью инструментов обслуживания. Предположим, что вы использовали шаг 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

Вот и все. Проверяйте, просматривая в вашей новой вики Special: NewFiles .


Полный экспорт или сохранение

Для экспорта "ВСЕХ изображений и ВСЕХ статей" из вашего старого MediaWiki, для полного резервного копирования или сохранения контента . Добавьте несколько процедур на каждом шаге:

Шаг-1: ... см. Выше шаг-1 ... и, чтобы создать дампы текстового содержимого из старой вики

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

Примечание: вместо --full вы можете использовать опцию --current.

Шаг-2: ... вам нужно dumpContent.xml.zip и Mediafiles.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

Вот и все. Проверьте также Special: AllPages новой вики.

6 голосов
/ 16 июня 2009

Не существует автоматического способа экспорта изображений, как вы экспортируете страницы, вы должны щелкнуть по ним правой кнопкой мыши и выбрать «Сохранить изображение». Чтобы получить историю страницы изображения, используйте страницу Special: Export .

Для импорта изображений используйте страницу Special: Upload в вашей вики. Если у вас их много, вы можете использовать скрипт Import Images. Примечание. Обычно для загрузки изображений вы должны быть в группе sysop.

1 голос
/ 29 декабря 2014

- Экспортировать ВСЕ:

Вы можете получить все страницы и все изображения из сети MediaWiki с помощью [API], даже если вы не являетесь владельцем сети (конечно, если владелец не отключил эту функцию):

Шаг 1 : Использование API для получения заголовка всех страниц и всех изображений url . Вы можете написать код, чтобы сделать это автоматически.

Шаг 2 : Далее вы используете [Special: Export], чтобы экспортировать все страницы с заголовками, которые вы получили, и используйте wget, чтобы получить все изображения, на которые у вас были ссылки (например, wget -i img-list.txt).

- Импортировать ВСЕ:

Шаг 1 : импорт страниц с использованием [Special: Import]

Шаг 2 : импорт изображений с использованием [Manual: ImportImages.php].

1 голос
/ 20 июня 2009

Доступно несколько инструментов массовой загрузки.

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

Оба запускаются на рабочем столе и могут быть настроены для загрузки в локальную вики (по умолчанию они настроены для общих ресурсов Википедии и Викимедиа). Если вы боитесь редактировать содержимое файла .jar, я предлагаю вам начать с Commonplace.

Еще одно полезное расширение существует для самого Mediawiki.

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

Это расширение позволяет вам помещать изображения в папку и загружать их все сразу. Он поддерживает аннотации для каждого файла, если необходимо, и очищает папку, как только это будет сделано. С другой стороны, он требует открытия общей папки на стороне сервера.

Обычное дело - commons.wikimedia.org/wiki/Commons:Tools/Commonplace

был доступен, но по состоянию на 13 января 2010 года устарел .

0 голосов
/ 12 октября 2009

Надеюсь, это немного поможет: http://www.mediawiki.org/wiki/Manual:ImportImages.php

...