Перейти к основному содержимому

Внешние библиотеки

Внешние библиотеки отслеживают ресурсы, хранящиеся в файловой системе вне 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 следующим образом:

docker-compose.yml
  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.