Manual:Image administration/ru

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Image administration and the translation is 88% complete.
Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎français • ‎português • ‎português do Brasil • ‎русский • ‎العربية • ‎中文 • ‎日本語 • ‎한국어

Данная статья содержит сведения о том, как MediaWiki хранит файлы и о том, как настроить этот функционал.

Это относится к изображениям так же, как и к любым другим типам файлов, которые могут быть загружены (uploaded). Все файлы хранятся с соответствующей статьёй в пространстве имён "File:" ("Файл:"). MediaWiki до версии 1.14 использовали пространство имён "Image:" вместо "File:". "Image:" до сих пор поддерживается как псевдоним для обратной совместимости.

Загрузка и использование изображений

См. Справка:Изображения

Включение функции загрузки файлов

Для загрузки файла должны совпасть три условия:

  1. Функция загрузки файлов в MediaWiki должна быть включена. Установите для $wgEnableUploads значение «true».
  2. Тип файла должен быть разрешённым. Подробности: $wgFileExtensions .
  3. Участник должен входить в группу с правом «upload». По умолчанию это право дано всем авторизованным участникам.

Загрузка файлов выполняется посредством служебной страницы Special:Upload.

См. Руководство:Настройка загрузки файлов , Manual:Mime type detection

Параметры, относящиеся к работе с файлами

Следующие параметры имеют отношения к функционалу работы с файлами:

Создание миниатюр изображений

Расширенный синтаксис изображений MediaWiki позволяет автоматически создавать миниатюры изображений (см. Руководство:Настройка загрузки файлов по общей помощи по загрузке файлов).

Функция создания миниатюр (Image thumbnailing) требует наличия ImageMagick или библиотеки GD - ни один из этих продуктов не входит в дистрибутив MediaWiki по умолчанию, хотя некоторые версии PHP включают GD. Рекомендуется использовать ImageMagick для получения миниатюр лучшего качества. Загрузить ImageMagick можно с imagemagick.org. GD включён в некоторые версии PHP, а в системах под управлением ОС Windows рекомендуется использовать именно GD. Библиотека GD доступна для загрузки с LibGD GitHub. В новых версиях этого не требуется.

Если вы используете ImageMagick, установите $wgUseImageMagick в значение «true» в файле LocalSettings.php. Убедитесь что $wgImageMagickConvertCommand указывает на (абсолютный) путь к расположению команды конвертации в вашей инсталляции, а также что команда выполнима для веб-сервера. К примеру, пользователи ОС Windows могут захотеть изменить значение по умолчанию на «C:\ImageMagick\convert.exe» (или что-то подобное).

Для воссоздания старых файлов миниатюр перед использованием ImageMagick вы можете использовать $wgThumbnailEpoch .

Если рендеринг завершается неудачно, проверьте и увеличьте значение $wgMaxShellMemory .

См. Страницу справки в Миниатюры изображений не работают для устранения неполадок.

GraphicsMagick теперь также можно использовать в качестве альтернативы ImageMagick. You will need to set $wgCustomConvertCommand to the following. Например:

$wgUseImageMagick = false;
$wgCustomConvertCommand = "gm convert %s -resize %wx%h %d";

GIF

Для создания миниатюр для анимированных GIF-файлов в среде Windows, вам потребуется установить ImageMagick согласно описанию выше.

SVG

Wikimania 2016 презентация о динамическом SVG

MediaWiki поддерживает возможность рендеринга изображений в формате SVG: если такая возможность включена, изображения в формате SVG могут использоваться так же, как и любые другие — они будут автоматически растеризоваться и отображаться в виде файлов в формате PNG, с генерацией миниатюр «на лету», по мере необходимости. Если вы используете общий хост и не предустановлен SVG-рендер, вам, вероятно, следует попросить вашего провайдера установить его для вас.

Для включения поддержки SVG необходимо:

  1. Разрешите в LocalSettings.php возможность загрузки файлов SVG: $wgFileExtensions [] = 'svg'; Обратите внимание, что по соображениям безопасности MediaWiki откажется обрабатывать SVG-файлы, содержащие JavaScript.
  2. ːЧтобы избежать ложных срабатываний, добавьте $wgAllowTitlesInSVG = true; в файл LocalSettings.php .
    If you are using MediaWiki 1.34 or higher, $wgAllowTitlesInSVG is never applied and now always true. You can safely remove this in your LocalSettings.php file.
  3. ːЕсли вы получаете сообщение об ошибке, где говорится, что файл повреждён, убедитесь, что определение типа MIME работает нормально.
  4. Добавьте $wgSVGConverter в файл LocalSettings.php и выберите инструмент, который вы хотите использовать для растеризации.
    Можно выбирать из ImageMagick, ImagickExt, sodipodi, inkscape, batik, rsvg, и imgserv.
    Например: $wgSVGConverter = 'ImageMagick';
    • Если путь к выбранному программному конвертеру не содержится в переменной окружения system path, то нужно явно задать папку этой программы посредством параметра $wgSVGConverterPath ..
    • librsvg быстр, но не очень аккуратен. Это зависит от большого количества библиотек. Чтобы автоматически установить все эти библиотеки, вы можете использовать менеджер пакетов. Проекты Викимедиа используют rsvg 2.14.
    • Batik обеспечивает наиболее точную отрисовку SVG среди доступных решений, хотя подчас недостаточно хорошо справляется со сглаживанием (anti-aliasing). У него более строгие правила разбора SVG, что заставляет его отвергать «почти правильные» SVG-файлы, принимаемые другими конвертерами (например, commons:File:UbuntuCoF.svg). Батик основан на Java, и гораздо медленнее, чем rsvg, хотя это не может быть большой проблемой, если только вы постоянно не добавляете SVG-файлы. См. сравнительные тесты SVG. Требуется много усилий, чтобы заставить его работать, если только он не входит в ваш дистрибутив.
    • Inkscape также не слишком аккуратно обрабатывает SVG-файлы, и примерно в два раза медленне, чем rsvg. При этом он был спроектирован для интерактивной работы с графигой, поэтому требует, чтобы у запускающего его пользователя была на сервере домашняя папка (home directory) с правами на запись. Поскольку он будет работать как пользователь www или кто-то подобный, он будет пытаться создать папки .inkscape/ и .gnome2/ в соответствующей домашней папке, и молча сломается, если это ему не удастся. Inkscape предпочтительнее, чем rsvg, в случаях (а) если используется среда Windows (если говорить об отдельном пакете) или (б) если у вас имеются важные SVG-файлы, нарисованные в Inkscape, которые некорректно обрабатываются в rsvg. Inkscape связан сложной цепью зависимостей с librsvg — используйте, только если эти компоненты есть в вашем дистрибутиве или доступны в качестве полностью автономного пакета.
    • Sodipodi — это ответвление от Inkscape. Применимо всё то же самое, что и к Inkscape. Sodipod в настоящее время активно не разрабатывается.
    • ImageMagick обрабатывает SVG-файлы, но с массой ошибок. Это значение по умолчанию, но избегайте его, если только это возможно. Тем не менее, это работает. В Windows необходимо установить $wgConvertPath, чтобы избежать конфликта с convert.exe. Одна простая альтернатива в этом сценарии - добавить в LocalSettings.php строку $wgSVGConverters['ImageMagick'] = '"' . $wgImageMagickConvertCommand . '" -background white -thumbnail $widthx$height^! $input PNG:$output';, что также позволяет использовать пробелы в пути.
      • To prevent thumbnail creation errors with ImageMagick, if it's ≥ 7.0.9-25, then Inkscape must also be ≥ 1.x.x. Likewise, if ImageMagick is < 7.0.9-25, then Inkscape must also be < 1.x.x. See ImageMagick issue.
    • The PHP Imagick extension supports SVG rendering, however the same considerations as for the regular ImageMagick apply.
    • Библиотека GD не способна преобразовывать изображения SVG в формат PNG, по крайней мере, согласно записи Джоя Асмуссена (Joen Asmussen) в блоге NoScope от июня 2008.
    • Многие современные веб-браузеры, за исключением Internet Explorer, умеют отображать файлы SVG напрямую — быстро, но неаккуратно (примерно так же, как ImageMagick). Использование librsvg для растенризации SVG и преобразования его в формат PNG даст гораздо более аккуратный результат. Прямое отображение SVG в MediaWiki по умолчанию не поддерживается (задача T5593), однако вы можете установить для этой цели расширение NativeSvgHandler .

Установите значение $wgSVGConverter = false, если рендеринг SVG не требуется, и вы хотите, чтобы пользователи загружали файл svg для его просмотра

Разрешение проблем

Если вы видите пустой квадрат вместо SVG (Chrome) или вообще не видите изображения (Firefox) и все ссылки PNG приводят к ошибке 404, и вы не видите никаких других сообщений об ошибках, проверьте переменную $wgGenerateThumbnailOnParse. Установка значения false может сделать преобразование SVG отложенным всегда. Убедитесь, что включены методы PHP proc_open и symlink (они могут быть отключены в php.ini по соображениям безопасности или производительности).

JPEG (с использованием GD)

Просто добавьте следующую строку в LocalSettings.php, это приведет к автоматическому возврату в библиотеку GD.

$wgUseImageMagick = false;

Об ошибках, связанных с созданием миниатюр JPEG-файлов, см. JPEG (с использованием GD).

TIFF

Для создания миниатюр файлов TIFF требуется MediaWiki версии 1.15.0 или выше.

  1. Разрешите в LocalSettings.php возможность загрузки файлов TIFF: $wgFileExtensions [] = 'tif';
  2. Добавьте $wgTiffThumbnailType к LocalSettings.php и установите его значение в jpg или png в зависимости от того, какой из этих форматов вы предпочитаете для создания миниатюр.
  3. Изготовление миниатюр для файлов TIFF может потребовать дополнительных системных ресурсов помимо тех, которые необходимы для миниатюр JPEG, GIF и PNG. Соответствующие настройки для этого — $wgMaxImageArea и $wgMaxShellMemory .

DjVu

Удаление изображений

Файлы, как и вики-страницы, могут удалять только участники с правами «Delete pages (delete)» (по умолчанию — administrators). Удаление файла вызывает также и удаление ассоциированной с ним вики-страницы с описанием (то же достигается, если перейти по ссылке «delete all» в таблице «File history»).

Удаление отдельных версий файлов

Если файл был изменён, то история его изменений отображается на странице его описания. Каждая версия сопровождается ссылкой «delete». Перейдя по ней, можно навсегда удалить данную версию файла вместе с записью в истории изменений.

История версий файлов отличается от истории изменений страниц с их описанием.

Информация о старых версиях файлов хранится в таблице «oldimage », в то время как информация о старых версиях страниц хранится в таблице «revision ».

Восстановление файлов

Files can be undeleted in exactly the same way as normal wiki pages. The directory in which deleted files are stored is defined by Manual:$wgDeletedDirectory . Информация об удалённых файлах хранится в таблице «filearchive».

Удаление архивных версий файлов

Начиная с версии MediaWiki 1.11, удаленные изображения по-прежнему сохраняются на сервере по умолчанию. Если вы хотите удалить выбранные заархивированные изображения, вы можете сделать это с помощью сценария обслуживания eraseArchivedFile.php . Если вы хотите полностью удалить их все, вы можете сделать это с помощью сценария deleteArchivedFiles.php . Если вы удалите заархивированные файлы, вы больше не сможете восстановить эти файлы.

Причины удаления файлов

При выборе удаления файла, как описано выше, пользователям будет предложено указать причину удаления. Доступные причины могут быть отредактированы в MediaWiki:Filedelete-reason-dropdown вашей вики.

Хранение данных

Как только изображение загружается, создаётся следующее:

  1. Статья в пространстве имён file с именем этого файла, например, File:MyPicture.png. Эта страница хранится и может редактироваться подобно любой другой странице.
  2. Сам файл, хранящийся в папке файловой системы, объединенными и замененными на _.
  3. Если подключено создание миниатюр, при необходимости будут создаваться уменьшенные версии этого файла (например, для использования на странице описания файла). Они хранятся в папке thumb внутри директории images, в отдельной папке для каждого основного файла.

Если $wgHashedUploadDirectory включена (по умолчанию), MediaWiki создает несколько подпапок в папке «images».

Названия папок являются первыми двумя символами md5-хеша конечного имени файла.

Папки

Все файлы изображений хранятся в отдельной папке, расположение которой определяется посредством $wgUploadPath (по умолчанию, images/).

Описание именованных подпапок изображений:

archive
Это место хранения файлов, которые заменены более новыми версиями.
temp
используется при загрузке изображений. (Но для таких файлов может оказаться недоступным автоматическое их удаление — см. задача T11018)
thumb
Миниатюры файлов (автоматически создаваемые). Будучи удалены, будут при необходимости автоматически восстановлены.

В зависимости от настроек, может использоваться дополнительная подпапка:

math
Папка для хранения растеризованных формул в формате TeX, см. также Manual:Enable TeX или Math.
x/xy
Если для $wgHashedUploadDirectory установлено значение true (по умолчанию), то изображения будут храниться в подпапках изображений, поэтому пути к файлам будут выглядеть как images/a/ab/filename.jpg.. Смотрите Manual:$wgHashedUploadDirectory для более подробной информации о том, почему это может быть необходимо и как эта система работает.

Таблицы базы данных

  • Страница описания файла хранится как любая страница в таблицах page, text, revision и т.д.
  • image table: Содержит некоторые метаданные, такие как размер файла и дату загрузки.
  • oldimage table: Здесь хранится информация для файлов, которые были заменены более новыми версиями.
  • filearchive table: содержит информацию об удаленных файлах.
  • imagelinks table: Записывает, какие страницы используют файл.

Использование дискового пространства

Файлы требуют значительно больше места, чем статьи. Следующие вычисления предполагают размер блока 4 КБ для серверов Linux / Unix.

Настройка по умолчанию выглядит как $wgHashedUploadDirectory = true.

Требуемое дисковое пространство для всех папок:

  • image directories: 0-f/x0-f: max. 16*16 = 256 directories = 256*4 KB = 1024 KB
  • archive directories: 0-f/x0-f: max. 16*16 = 256 directories = 256*4 KB = 1024 KB
  • thumb directories: 0-f/x0-f: max. 16*16 = 256 directories = 256*4 KB = 1024 KB
  • temp directories: 0-f/x0-f: max. 16*16 = 256 directories = 256*4 KB = 1024 KB

Следовательно, базовый объем пространства, необходимый без загруженных изображений, теоретически составляет 4 МБ (хотя каталоги создаются только при необходимости).

Для каждого файла необходимо:

  • размер исходного файла изображения + 2 КБ средних накладных расходов

Для файлов, которым требуются миниатюра:

  • размер созданного эскиза(ов) + 2 КБ средних накладных расходов (каждому)
  • каталог для миниатюр (4 КБ) (каждое изображение имеет свой каталог с миниатюрами)

Примеры:

  • изображение 20778 байт png (маленький размер, без миниатюр): 24 КБ для изображения: Итого 24 КБ
  • изображение в формате 123.000 байт jpeg (большой размер, автоматические создание миниатюр): 124 КБ для изображения, 4 КБ для каталога миниатюр, 64 КБ для миниатюр: Итого 192 КБ

Доступ к файлам

Загруженные файлы обычно обслуживаются непосредственно веб-сервером, а не через MediaWiki. В то время как может существовать минимальный уровень безопасности за счет неизвестности с шифрованием пути (eg. /c/c4/...) если задан $wgHashedUploadDirectory , то путь может быть легко вычислен из имени файла и не обеспечивает истинной защиту.

Для ограничения доступа для авторизованных пользователей, смотрите Manual:Image authorization .

Лицензирование

A feature of MediaWiki allows the Special:Upload Page to streamline licensing of images. Wikipedia's Upload Page has a Licensing drop down box below image summary. This feature is turned off in default MediaWiki. To turn this feature on a sysop needs to edit Licenses in the MediaWiki namespace (example: MediaWiki:Licenses). They can do this by going to the MediaWiki:Licenses page of their wiki and clicking 'create' or 'edit'.

The page MediaWiki:Licenses expects a certain format in a wiki list.

*subst:license 1|license 2|License text
* Header 1:
** cc-by-sa-2.5|Attribution ShareAlike 2.5

Line 1 will produce "License text" and substitute the license 1 template in the image page and transclude license 2.
Line 2 will show a greyed out header with text "Header 1:"
Line 3 will produce "Attribution ShareAlike 2.5" and transclude template cc-by-sa-2.5 on the image page.

For detailed real world example, see Wikipedia:MediaWiki:Licenses or Commons:MediaWiki:Licenses.

Внешние хранилища

Можно получить доступ к файлам, хранящимся в сторонних репозиториях, без необходимости загружать их в вики, установив массив $wgForeignFileRepos . Эта функция предлагает несколько возможностей:

  • ForeignAPIRepo получает доступ к файлам из удаленной установки MediaWiki, таким как Wikimedia Commons, через его API
  • ForeignDBRepo получает доступ к файлам через базу данных и полезен для создания wiki families
  • FSRepo получает доступ к файлам из локальной папки

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

Версии MediaWiki

Применимо к версиям:

  • MediaWiki 1.9.x и выше
  • другие версии не проверялись