Внешние библиотеки
Внешние библиотеки отслеживают ресурсы, хранящиеся в файловой системе вне Immich. Когда внешняя библиотека сканируется, Immich загружает видео и фотографии с диска и создает соответствующие ресурсы. Эти ресурсы затем отображаются в основном временном ряду и ведут себя как любые другие ресурсы, включая просмотр на карте, доб авление в альбомы и т. д. Если файл впоследствии изменяется вне Immich, вам нужно будет снова отсканировать библиотеку, чтобы изменения стали видны.
Если внешний ресурс удаляется с диска, Immich перемещает его в корзину при повторном сканировании. Чтобы восстановить ресурс, вам нужно восстановить исходный файл. Через 30 дней файл будет удален из корзины, и любые изменения метаданных в Immich будут потеряны.
Если вы добавляете метаданные к внешнему ресурсу любым способом (например, добавляете его в альбом или редактируете описание), эти метаданные хранятся только внутри Immich и не сохраняются в файле внешнего ресурса. Если вы перемещаете ресурс в другое место внутри библиотеки, все такие метаданные будут утрачены при повторном сканировании. Это происходит потому, что ресурс считается новым после перемещения. Э то известная проблема, которая будет исправлена в будущих выпусках.
Из-за агрессивного кэширования может потребоваться некоторое время, чтобы обновленный ресурс корректно отобразился в веб-версии. Вам нужно очистить кэш вашего браузера, чтобы увидеть изменения. Это известная проблема, которая будет исправлена в будущих выпусках. В Chrome вам нужно открыть консоль разработчика с помощью F12, затем обновить страницу с помощью F5 и, наконец, нажать правой кнопкой мыши на кнопку обновления и выбрать "Empty Cache and Hard Reload".
Пути импорта
Внешние библиотеки используют пути импорта для определения, какие файлы сканировать. Каждая библиотека может име ть несколько путей импорта, чтобы файлы из разных мест могли быть добавлены в одну библиотеку. Пути импорта сканируются рекурсивно, и если файл находится в нескольких путях импорта, он добавляется только один раз. Каждый путь импорта должен быть доступным каталогом, существующим в файловой системе; диалоговое окно путей импорта предупредит вас о недоступных путях.
Если пути импорта редактируются таким образом, что внешний файл больше не входит в ни один путь импорта, он будет удален из библиотеки так же, как удаленный файл. Если файл будет возвращен в путь импорта, он будет добавлен снова как новый файл.
Устранение неисправностей
Иногда внешняя библиотека не сканируется корректно. Это может произойти, если Immich не может получить доступ к файлам. Вот что нужно проверить:
- В файле docker-compose правильно ли примонтированы тома?
- Также примонтированы ли тома к контейнерам-воркерам?
- Прави льно ли настроены пути импорта, совпадают ли они с путями в файле docker-compose?
- Убедитесь, что вы не используете символьные ссылки в библиотеках импорта и не ссылаетесь на данные за пределами docker mounts.
- Правильно ли заданы разрешения?
- Убедитесь, что вы используете прямые слэши (
/
), а не обратные.
Для проверки доступности внешней библиотеки из Immich запустите оболочку внутри контейнера. Выполните docker exec -it immich_server bash
для доступа к bash. Если ваш путь импорта /data/import/photos
, проверьте его с помощью ls /data/import/photos
. Выполните ту же проверку для всех микросервисных контейнеров.
Шаблоны для исключения
По умолчанию все файлы в путях импорта будут добавлены в библиотеку. Если есть файлы, которые не следует добавлять, можно использовать шаблоны для их исключения. Шаблоны исключения являются глоб-шаблонами, которые сопоставляются с полным путем файла. Если файл соответствует шаблону исключения, он не будет добавлен в библиотеку. Шаблоны исключения можно добавить на странице настроек сканирования для каждой библиотеки.
Некоторые основные примеры:
**/*.tif
исключит все файлы с расширением.tif
**/hidden.jpg
исключит все файлы с именемhidden.jpg
**/Raw/**
исключит все файлы в любом каталоге с именемRaw
**/*.{tif,jpg}
исключит все файлы с расширением.tif
или.jpg
Специальные символы, такие как @, следует экранировать, например:
**/\@eaDir/**
исключит все файлы в любом каталоге с именем@eaDir
Внутри Immich используется пакет glob для обработки шаблонов исключений, и иногда эти шаблоны переводятся в Postgres LIKE шаблоны. Намерение состоит в поддержке ба зовых исключений папок, но мы рекомендуем избегать сложных шаблонов, так как они могут быть ненадежно переведены в синтаксис Postgres. Обратитесь к документации glob для получения основ о шаблонах glob.
Автоматическое отслеживание (ЭКСПЕРИМЕНТАЛЬНО)
Эта функция считается экспериментальной и предназначена только для опытных пользователей. Если она включена, это позволит автоматически отслеживать файловую систему, что означает, что новые ресурсы будут импортироваться в Immich автоматически, без необходимости повторного сканирования.
Если ваши фотографии находятся на сетевом диске, автоматическое отслеживание файлов, скорее всего, не будет работать. В этом случае вам придется полагаться на периодическое обновление библиотеки для внесения изменений.
Устранение неисправностей
Если вы столкнетесь с ошибкой ENOSPC
, вам нужно увеличить лимит наблюдателей за файлами. В sysctl этот ключ называется fs.inotify.max_user_watches
и имеет значение по умолчанию 8192. Увеличьте это число до подходящего значения, превышающего количество файлов, которые вы будете отслеживать. Обратите внимание, что Immich должен отслеживать все файлы в ваших путях импорта, включая игнорируемые файлы.
ОШИБКА [LibraryService] Обнаружена ошибка у наблюдателя библиотеки c69faf55-f96d-4aa0-b83b-2d80cbc27d98: Ошибка: ENOSPC: Достигнут системный лимит на количество наблюдателей за файлами, watch '/media/photo.jpg'
В редких случаях наблюдатель библиотеки может зависнуть, что помешает запуску Immich. В этом случае отключите наблюдатель библиотеки в конфигурационном файле. Если наблюдатель включен изнутри Immich, приложение должно быть запущено без микросервисов. Отключите микросервисы в файле docker-compose, запустите Immich, отключите наблюдателя библиотеки в административных настройках, закройте Immich, снова включите микросервисы, и затем Immich может быть запущен нормально.
Ежедневная задача
Есть автоматическая задача сканирования, которая запланирована на выполнение раз в день. Эта задача также очищает любые библиотеки, зависшие на стадии удаления. Можно активировать очистку, нажав "Сканировать все библиотеки" на странице управления библиотеками.
Использование
Давайте покажем конкретный пример добавления существующей галереи в Immich. У нас есть следующие па пки, которые мы хотим добавить:
/home/user/old-pics
: папка с детскими фотографиями./mnt/nas/christmas-trip
: фотографии из рождественской поездки. Подпапка/mnt/nas/christmas-trip/Raw
содержит необработанные файлы прямо с DSLR. Мы не хотим импортировать необработанные файлы в Immich./mnt/media/videos
: Видео с той же рождественской поездки.
Сначала нам нужно спланировать, как мы хотим организовать библиотеки. Фотографии из рождественской поездки должны быть в своей собственной библиотеке, так как мы хотим исключить необработанные файлы. Видео и старые фотографии могут быть в одной библиотеке, так как мы хотим импортировать все файлы. Мы также могли бы добавить все три папки в одну библиотеку, если в других папках нет файлов, соответствующих шаблону исключения Raw.
Монтирование томов Docker
Контейнер immich-server
должен иметь доступ к галерее. Измените файл docker-compose следующим образом:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
+ - /home/user/old-pics:/mnt/media/old-pics:ro
+ - /mnt/media/videos:/mnt/media/videos:ro
+ - /mnt/media/videos2:/mnt/media/videos2 # ВНИМАНИЕ: Immich сможет удалять файлы в этой папке, так как она не заканчивается на :ro
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # путь импорта для системы Windows.
Флаг ro
в конце дает только доступ на чтение к томам.
Это предотвратит удаление изображений в веб-интерфейсе или добавление метаданных в библиотеку (XMP-сайдкары).
Не забудьте выполнить команду docker-compose up -d
для регистрации изменений. Убедитесь, что вы видите смонтированный путь в контейнере.
Создание новой библиотеки
Эти действия должен выполнить администратор Immich.
- Нажмите на свой аватар в правом верхнем углу.
- Нажмите Администрирование -> Внешние библиотеки.
- Нажмите Создать внешнюю библиотеку…
- Выберите, какой пользователь владеет библиотекой, это не может быть изменено позднее.
- Введите
/mnt/media/christmas-trip
, затем нажмите Добавить. - Нажмите Сохранить.
- Нажмите на выпадающее меню для недавно созданной библиотеки.
- Нажмите Сканировать.
- Нажмите на выпадающее мен ю для недавно созданной библиотеки.
- Нажмите Переименовать библиотеку и введите название "Рождественская поездка".
ПРИМЕЧАНИЕ: Нам нужно использовать путь /mnt/media/christmas-trip
, а не /mnt/nas/christmas-trip
, так как все пути должны быть видимы с точки зрения контейнеров Docker.
Теперь добавим шаблон исключения для фильтрации необработанных файлов.
- Нажмите на выпадающее меню для недавно созданной библиотеки Рождественская поездка.
- Нажмите Управление.
- Нажмите Настройки сканирования.
- Нажмите Добавить шаблон исключения.
- Введите
**/Raw/**
и нажмите сохранить. - Нажмите сохранить.
- Нажмите на выпадающее меню для недавно созданной библиотеки.
- Нажмите Сканировать.
Библиотека Рождественская поездка теперь будет сканироваться в фоне. В это время добавим видео и старые фотографии в другую библиотеку.
- Нажмите Создать внешнюю библиотеку.
Если здесь возникнет ошибка, переименуйте другую внешнюю библиотеку. Это ошибка, которая будет исправлена в будущем выпуске.
- Нажмите на выпадающее меню для недавно созданной библиотеки.
- Нажмите Редактировать пути импорта.
- Нажмите Добавить путь.
- Введите
/mnt/media/old-pics
, затем нажмите Добавить. - Нажмите Добавить путь.
- Введите
/mnt/media/videos
, затем нажмите Добавить. - Нажмите Сохранить.
- Нажмите Сканировать.
Через несколько секунд ресурсы из папок old-pics и videos должны появиться в основном временном ряду.
Просмотр папок
Просмотр папок предоставляет дополнительный вид кроме временной шкалы, схожий с проводником файлов. Это позволяет вам переходить по папкам и файлам в библиотеке. Эта функция удобна для высоко организованной и настроенной внешней библиотеки или хорошо настроенного шаблона хранения.
Вы можете включить эту функцию в разделе Настройки аккаунта > Функции > Папки

Установить настраиваемый интервал сканирования
Только администратор может это сделать.
Вы можете задать настраиваемый интервал для активации пересканирования внешней библиотеки в разделе Администрирование -> Настройки -> Внешняя библиотека. Вы можете установить интервал сканирования, используя предустановленный формат или формат cron. Для получения дополнительной информации вы можете обратиться к Crontab Guru.
