Zum Hauptinhalt springen

Externe Bibliotheken

Externe Bibliotheken verfolgen Assets, die im Dateisystem außerhalb von Immich gespeichert sind. Wenn die externe Bibliothek gescannt wird, lädt Immich Videos und Fotos von der Festplatte und erstellt die entsprechenden Assets. Diese Assets werden dann in der Haupt-Timeline angezeigt und verhalten sich wie andere Assets, einschließlich der Anzeige auf der Karte, Hinzufügung zu Alben usw. Wenn eine Datei später außerhalb von Immich geändert wird, muss die Bibliothek erneut gescannt werden, damit die Änderungen sichtbar werden.

Falls ein externes Asset auf der Festplatte gelöscht wird, verschiebt Immich es beim erneuten Scannen in den Papierkorb. Um das Asset wiederherzustellen, muss die ursprüngliche Datei wiederhergestellt werden. Nach 30 Tagen wird die Datei aus dem Papierkorb entfernt und alle innerhalb von Immich vorgenommenen Metadatenänderungen gehen verloren.

Wenn Sie auf irgendeine Weise Metadaten zu einem externen Asset hinzufügen (z. B. es zu einem Album hinzufügen oder die Beschreibung bearbeiten), werden diese Metadaten nur innerhalb von Immich gespeichert und nicht in der externen Asset-Datei beibehalten. Wenn Sie ein Asset an einen anderen Ort innerhalb der Bibliothek verschieben, gehen alle solche Metadaten beim erneuten Scannen verloren. Dies liegt daran, dass das Asset nach dem Verschieben als neues Asset betrachtet wird. Dies ist ein bekanntes Problem und wird in einer zukünftigen Version behoben.

Aufgrund aggressiver Zwischenspeicherung kann es einige Zeit dauern, bis ein aktualisiertes Asset korrekt in der Webansicht erscheint. Sie müssen den Cache in Ihrem Browser leeren, um die Änderungen zu sehen. Dies ist ein bekanntes Problem und wird in einer zukünftigen Version behoben. In Chrome müssen Sie die Entwicklerkonsole mit F12 öffnen, die Seite mit F5 neu laden und schließlich mit einem Rechtsklick auf die Schaltfläche "Neu laden" die Option "Cache leeren und hart neu laden" auswählen.

Importpfade

Externe Bibliotheken verwenden Importpfade, um festzulegen, welche Dateien gescannt werden sollen. Jede Bibliothek kann mehrere Importpfade haben, sodass Dateien aus verschiedenen Orten zur gleichen Bibliothek hinzugefügt werden können. Importpfade werden rekursiv gescannt und wenn sich eine Datei in mehreren Importpfaden befindet, wird sie nur einmal hinzugefügt. Jeder Importpfad muss ein lesbares Verzeichnis sein, das im Dateisystem existiert; der Importpfad-Dialog warnt Sie vor nicht zugänglichen Pfaden.

Wenn die Importpfade so bearbeitet werden, dass eine externe Datei sich nicht mehr in einem Importpfad befindet, wird sie aus der Bibliothek entfernt, so wie es bei einer gelöschten Datei der Fall wäre. Wenn die Datei zurück in einen Importpfad verschoben wird, wird sie erneut hinzugefügt, als ob es sich um eine neue Datei handelt.

Problemlösung

Manchmal wird eine externe Bibliothek nicht korrekt gescannt. Dies kann passieren, wenn Immich keinen Zugriff auf die Dateien hat. Hier sind einige Dinge, die Sie überprüfen sollten:

  • Sind die Volumes in der docker-compose-Datei korrekt eingebunden?
  • Sind die Volumes auch in Worker-Containern eingebunden?
  • Sind die Importpfade korrekt eingestellt und stimmen sie mit den Pfaden in der docker-compose-Datei überein?
  • Vermeiden Sie die Verwendung von Symlinks in Ihren Importbibliotheken und die Überkreuzung von Docker-Mounts.
  • Sind die Berechtigungen korrekt eingestellt?
  • Stellen Sie sicher, dass Sie Vorwärtsschrägstriche (/) und keine Rückwärtsschrägstriche verwenden.

Um zu prüfen, ob Immich Ihre externe Bibliothek erreichen kann, starten Sie eine Shell im Container. Führen Sie docker exec -it immich_server bash aus, um eine Bash-Shell zu öffnen. Wenn Ihr Importpfad '/data/import/photos' ist, überprüfen Sie ihn mit ls /data/import/photos. Führen Sie die gleiche Prüfung in Mikroservices-Containern durch.

Ausschlussmuster

Standardmäßig werden alle Dateien in den Importpfaden zur Bibliothek hinzugefügt. Wenn es Dateien gibt, die nicht hinzugefügt werden sollen, können Ausschlussmuster verwendet werden, um sie auszuschließen. Ausschlussmuster sind Glob-Muster, die mit dem vollständigen Dateipfad verglichen werden. Wenn eine Datei mit einem Ausschlussmuster übereinstimmt, wird sie nicht zur Bibliothek hinzugefügt. Ausschlussmuster können auf der Scan-Einstellungsseite für jede Bibliothek hinzugefügt werden.

Einige grundlegende Beispiele:

  • **/*.tif schließt alle Dateien mit der Erweiterung .tif aus
  • **/hidden.jpg schließt alle Dateien mit dem Namen hidden.jpg aus
  • **/Raw/** schließt alle Dateien in einem Verzeichnis namens Raw aus
  • **/*.{tif,jpg} schließt alle Dateien mit den Erweiterungen .tif oder .jpg aus

Besondere Zeichen wie @ sollten maskiert werden, zum Beispiel:

  • **/\@eaDir/** schließt alle Dateien in einem Verzeichnis namens @eaDir aus

Intern verwendet Immich das glob-Paket, um Ausschlussmuster zu verarbeiten, und manchmal werden diese Muster in Postgres LIKE-Muster übersetzt. Ziel ist es, grundlegende Ordnerausschlüsse zu unterstützen. Wir empfehlen jedoch, fortgeschrittene Anwendungen zu vermeiden, da diese nicht zuverlässig in die Postgres-Syntax übersetzt werden können. Bitte lesen Sie die glob-Dokumentation für einen Überblick über Glob-Muster.

Automatisches Überwachen (EXPERIMENTELL)

Diese Funktion gilt als experimentell und nur für fortgeschrittene Benutzer. Wenn aktiviert, ermöglicht sie das automatische Überwachen des Dateisystems, sodass neue Assets automatisch in Immich importiert werden, ohne erneut scannen zu müssen.

Wenn Ihre Fotos sich auf einem Netzlaufwerk befinden, funktioniert das automatische Dateiüberwachen wahrscheinlich nicht. In diesem Fall müssen Sie sich auf eine regelmäßige Bibliotheksaktualisierung verlassen, um Ihre Änderungen zu integrieren.

Problemlösung

Wenn Sie auf einen ENOSPC-Fehler stoßen, müssen Sie Ihr Dateiüberwachungs-Limit erhöhen. In sysctl wird dieser Schlüssel als fs.inotify.max_user_watches bezeichnet und hat einen Standardwert von 8192. Erhöhen Sie diesen Wert auf eine geeignete Anzahl, die größer als die Anzahl der Dateien ist, die Sie überwachen werden. Beachten Sie, dass Immich alle Dateien in Ihren Importpfaden einschließlich der ignorierten Dateien überwachen muss.

FEHLER [LibraryService] Bibliotheksüberwacher für Bibliothek c69faf55-f96d-4aa0-b83b-2d80cbc27d98 hatte einen Fehler: Fehler: ENOSPC: Systemlimit für die Anzahl von Dateiüberwachern erreicht, überwachen '/media/photo.jpg'

In seltenen Fällen kann der Bibliotheksüberwacher hängen bleiben, wodurch Immich nicht startet. In diesem Fall deaktivieren Sie den Bibliotheksüberwacher in der Konfigurationsdatei. Wenn der Überwacher innerhalb von Immich aktiviert ist, muss die App ohne die Mikroservices gestartet werden. Deaktivieren Sie die Mikroservices in der docker-compose-Datei, starten Sie Immich, deaktivieren Sie den Bibliotheksüberwacher in den Admin-Einstellungen, schließen Sie Immich, aktivieren Sie die Mikroservices erneut und starten Sie Immich dann normal.

Nächtlicher Job

Es gibt einen automatischen Scan-Job, der einmal täglich ausgeführt wird. Dieser Job bereinigt auch Bibliotheken, die bei der Löschung hängen geblieben sind. Es ist möglich, die Bereinigung auszulösen, indem man auf der Bibliotheksverwaltungsseite auf "Alle Bibliotheken scannen" klickt.

Verwendung

Lassen Sie uns ein konkretes Beispiel zeigen, bei dem wir eine bestehende Galerie zu Immich hinzufügen. Hier möchten wir die folgenden Ordner hinzufügen:

  • /home/user/old-pics: Ein Ordner mit Fotos aus der Kindheit.
  • /mnt/nas/christmas-trip: Fotos von einem Weihnachtsausflug. Der Unterordner /mnt/nas/christmas-trip/Raw enthält die Rohdateien direkt von der DSLR. Wir möchten die Rohdateien nicht in Immich importieren.
  • /mnt/media/videos: Videos vom gleichen Weihnachtsausflug.

Zunächst müssen wir planen, wie wir die Bibliotheken organisieren möchten. Die Weihnachtsausflugsfotos sollten zu einer eigenen Bibliothek gehören, da wir die Rohdateien ausschließen möchten. Die Videos und alten Fotos können in derselben Bibliothek sein, da wir alle Dateien importieren möchten. Wir könnten auch alle drei Ordner zur gleichen Bibliothek hinzufügen, wenn es keine Dateien gibt, die dem Ausschlussmuster für Rohdateien in den anderen Ordnern entsprechen.

Docker-Volumes einbinden

Der immich-server-Container benötigt Zugriff auf die Galerie. Ändern Sie Ihre docker-compose-Datei wie folgt:

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 # WARNUNG: Immich kann Dateien in diesem Ordner löschen, da er nicht mit :ro endet
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # Importpfad im Windows-System.

Das ro-Flag am Ende gibt nur Lesezugriff auf die Volumes. Dies verhindert das Löschen von Bildern in der Web-Oberfläche oder das Hinzufügen von Metadaten zur Bibliothek (XMP-Sidecars).

Denken Sie daran, docker compose up -d auszuführen, um die Änderungen zu registrieren. Stellen Sie sicher, dass Sie den eingebundenen Pfad im Container sehen können.

Eine neue Bibliothek erstellen

Diese Schritte müssen vom Immich-Administrator durchgeführt werden.

  • Klicken Sie auf Ihr Avatar-Symbol oben rechts.
  • Klicken Sie auf Verwaltung -> Externe Bibliotheken.
  • Klicken Sie auf "Eine externe Bibliothek erstellen…".
  • Wählen Sie aus, welcher Benutzer die Bibliothek besitzt. Dies kann später nicht geändert werden.
  • Geben Sie '/mnt/media/christmas-trip' ein und klicken Sie auf Hinzufügen.
  • Klicken Sie auf Speichern.
  • Klicken Sie im Dropdown-Menü der neu erstellten Bibliothek.
  • Klicken Sie auf Scannen.
  • Klicken Sie im Dropdown-Menü der neu erstellten Bibliothek.
  • Klicken Sie auf Bibliothek umbenennen und benennen Sie sie in "Christmas Trip" um.

HINWEIS: Wir müssen den Pfad '/mnt/media/christmas-trip' verwenden und nicht '/mnt/nas/christmas-trip', da alle Pfade die sein müssen, die die Docker-Container sehen.

Als nächstes fügen wir ein Ausschlussmuster hinzu, um Rohdateien herauszufiltern.

  • Klicken Sie im Dropdown-Menü der neu erstellten Christmas-Bibliothek.
  • Klicken Sie auf Verwalten.
  • Klicken Sie auf Scan-Einstellungen.
  • Klicken Sie auf Ausschlussmuster hinzufügen.
  • Geben Sie **/Raw/** ein und klicken Sie auf Speichern.
  • Klicken Sie auf Speichern.
  • Klicken Sie im Dropdown-Menü der neu erstellten Bibliothek.
  • Klicken Sie auf Scannen.

Die Christmas-Trip-Bibliothek wird jetzt im Hintergrund gescannt. In der Zwischenzeit fügen wir die Videos und alten Fotos einer anderen Bibliothek hinzu.

  • Klicken Sie auf Externe Bibliothek erstellen.

Wenn Sie hier einen Fehler erhalten, benennen Sie bitte die andere externe Bibliothek um. Dies ist ein Fehler, der in einer zukünftigen Version behoben wird.

  • Klicken Sie im Dropdown-Menü der neu erstellten Bibliothek.
  • Klicken Sie auf Importpfade bearbeiten.
  • Klicken Sie auf Pfad hinzufügen.
  • Geben Sie '/mnt/media/old-pics' ein und klicken Sie auf Hinzufügen.
  • Klicken Sie auf Pfad hinzufügen.
  • Geben Sie '/mnt/media/videos' ein und klicken Sie auf Hinzufügen.
  • Klicken Sie auf Speichern.
  • Klicken Sie auf Scannen.

Innerhalb von Sekunden sollten die Assets aus den Ordnern old-pics und videos in der Haupt-Timeline angezeigt werden.

Ordneransicht

Die Ordneransicht bietet neben der Zeitleiste eine zusätzliche Ansicht, die einem Datei-Explorer ähnelt. Sie ermöglicht es Ihnen, durch die Ordner und Dateien in der Bibliothek zu navigieren. Diese Funktion ist praktisch für eine stark kuratierte und angepasste externe Bibliothek oder eine schön konfigurierte Speicher-Vorlage.

Sie können diese Funktion unter Kontoeinstellungen > Funktionen > Ordner aktivieren.

Benutzerdefiniertes Scan-Intervall festlegen

Notiz

Nur ein Administrator kann dies tun.

Sie können ein benutzerdefiniertes Intervall für den Trigger der externen Bibliotheks-Neuabtastung unter Verwaltung -> Einstellungen -> Externe Bibliothek definieren. Sie können das Scan-Intervall mithilfe der Vorgabe oder des Cron-Formats festlegen. Weitere Informationen finden Sie unter Crontab Guru.