Home » Nextcloud » Nextcloud Previews regelmässig generieren lassen

Nextcloud Previews regelmässig generieren lassen

Heute schauen wir uns an, wie wir in der Nextcloud unsere Previews regelmässig und automatisch generieren lassen können. Normalerweise generiert Nextcloud Vorschaubilder für Bilder und manchmal andere Dateitypen (wie PDFs), wenn ein Nutzer auf sie zugreift. Dies kann zu einer Verzögerung führen, da die Vorschau erst erstellt werden muss. Auf einem Nextcloud Server, auf dem tägliche viele neue Bilder und Dateien landen, kann es sinnvoll sein, die Previews regelmäss generieren zu lassen, damit diese beim Browsen und Zugreifen bereits vorhanden sind. Mit der preview:pre-generate Funktion werden diese Vorschaubilder im Voraus erstellt, was bedeutet, dass sie sofort verfügbar sind, wenn Ihr sie benötigt.

Warm sollte ich Previews im voraus generieren

Indem Vorschaubilder außerhalb der Spitzenzeiten vorab generiert werden, können Serverressourcen besser verwaltet und die Leistung verbessert werden. Dies ist besonders nützlich in Umgebungen mit vielen Nutzern oder bei der Verwendung von leistungsschwächeren Servern. Ihr profitiert von schnelleren Ladezeiten und einer flüssigeren Navigation durch Eure Dateien, da die Vorschaubilder bereits verfügbar sind.

Die Funktion ist, wie bereits besprochen, besonders nützlich, wenn regelmäßig viele neue Dateien hochgeladen werden. Sie sorgt dafür, dass auch für diese neuen Dateien Vorschaubilder bereitstehen.

Voraussetzungen

Damit alles funktioniert, müssen wir ein paar Dinge vorher erledigen:

Zuerst installieren wir uns die App Preview Generator in unserer Nextcloud. Diese finden wir in den Einstellungen unter Apps --> Multimedia --> Preview Generator

Die Einstellungen in der Nextcloud sind bereits erledigt.

Anpassung der Nextcloud Config

Eine Standard Nextcloud Installation hat noch keinerlei spezifische preview Einstellungen. Um die Einstellung zu optimieren, öffnen wir mit dem Befehl

sudo nano /euer/pfad/zur/cloud/config/config.php

die config und fügen folgenden Inhalt dazu:

'enable_previews' => true,
'preview_max_x' => 1024,
'preview_max_y' => 768,
'preview_max_scale_factor' => 1,
'enabledPreviewProviders' =>  
array (
   0 => 'OC\\Preview\\PNG',
   1 => 'OC\\Preview\\JPEG',
   2 => 'OC\\Preview\\GIF',
   3 => 'OC\\Preview\\BMP',
   4 => 'OC\\Preview\\XBitmap',
   5 => 'OC\\Preview\\Movie',
   6 => 'OC\\Preview\\PDF',
   7 => 'OC\\Preview\\MP3',
   8 => 'OC\\Preview\\TXT',
   9 => 'OC\\Preview\\MarkDown',
  10 => 'OC\\Preview\\EMF',
),

Wir aktiviere die Generierung der Previews für die aufgeführten Formate. Danach speichern wie die Datei mit strg+o und beenden mit strg+x

Hinweis

Falls Ihr Eure Nextcloud bereits einige Zeit am laufen habt, sind bereits Previews erstellt wurden. Oft ist es sinnvoll die vorhanden Previews zu löschen da wir sie in der neuen Config in einem neuen Format erstellen. Ihr könnt die vorhanden Previews einfach löschen in dem Ihr den Inhalt des Preview Ordners im data Ordner unter appdata_[wildebuchstaben] löscht.


Danach erstellen wir die kompletten Previews einmal neu mit dem Befehl

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all -vvv

Bei mehreren php Versionen auf dem Server, wählt bitte mit php8.2 die entsprechenden php Version aus die Nextcloud verwendet.

Cronjob erstellen

Wir erstellen nun einen Cronjob der das generieren der Previews in regelmässigen Abständen veranlasst.

Die optimale Einstellung für den Crontab zur Vorschau-Generierung (Preview Generation) in Nextcloud hängt von verschiedenen Faktoren ab, wie der Größe deiner Nextcloud-Installation, der Häufigkeit neuer Uploads und der Leistung Eures Servers. Hier sind ein paar allgemeine Richtlinien:

  1. Einmal täglich (z.B. nachts): Dies ist eine gute Wahl für kleinere oder mittlere Nextcloud-Installationen, bei denen nicht ständig neue Dateien hochgeladen werden. Eine nächtliche Ausführung minimiert die Belastung des Servers während der Hauptnutzungszeiten. Beispiel: 0 3 * * * führt den Befehl jeden Tag um 3 Uhr morgens aus.
  2. Mehrere Male am Tag: Für aktive Nextcloud-Installationen, wo regelmäßig viele neue Dateien hochgeladen werden, könnte es sinnvoll sein, die Vorschau-Generierung öfter durchzuführen, beispielsweise alle 4 oder 6 Stunden. Beispiel: 0 */6 * * * führt den Befehl alle 6 Stunden aus.
  3. Jede Stunde: Dies ist für sehr große und aktive Installationen geeignet, bei denen es wichtig ist, dass die Vorschauen fast zeitgleich mit den Uploads verfügbar sind. Beispiel: 0 * * * * führt den Befehl jede Stunde aus.
  4. Zu Spitzenzeiten vermeiden: Plant die Ausführungszeiten so, dass sie außerhalb der Hauptnutzungszeiten deiner Nextcloud-Installation liegen. Dies hilft, die Serverleistung während der Spitzenzeiten zu maximieren.
  5. Anpassung und Überwachung: Startet mit einer moderaten Häufigkeit und passt sie basierend auf der Leistung Eures Servers und dem Bedarf Eurer Nutzer an. Überwacht die Serverleistung, um sicherzustellen, dass sie nicht negativ beeinflusst wird.

Mit crontab -u www-data -e erstellen wir nun einen neuen crontab als Nutzer www-data. Falls Ihr das erste mal crontab verwendet, nutzt am besten den Nano Editor indem Ihr 1 auswählt und mit Enter bestätigt.

Fügen wir nun einen crontab hinzu, der z.B Nachts um 3 die Previews neu generiert:

0 3 * * * php -f /var/www/nextcloud/occ preview:pre-generate

Passt den Befehl entsprechend Eures Bedarfs an. Verwendet die korrekte php Version bei mehreren vorhandenen php Versionen auf Eurem Server. Bei mir läuft der crontab um 23:00:

Ob der Befehl durchläuft könnt Ihr vorher zuerst auf der Konsole einfach testen mit:

sudo -u www-data php -f /var/www/nextcloud/occ preview:pre-generate

Falls alles funktioniert, wird auch der Cronjob funktionieren 🙂

Problemlösung

Alte Previews löschen


Manchmal schlägt die Regenerierung fehl aufgrund alter Previews. Bitte beachtet den Hinweis aus der Hinweisbox oben und löscht in diesem Fall den Inhalt des kompletten preview Ordner unter appdata_[instanz_id] im Daten Ordner Eurer Nextcloud.

Datenbank Aktualisierung

Falls es immer noch zu Fehler kommt, kann es helfen, die Nextcloud Datenbank zu aktualisieren.

Öffnet mysql, wählt die Datenbank Nextcloud aus und löscht die betroffenen Datenbankeinträge:

mysql -u root -p
USE nextcloud;
DELETE FROM oc_filecache WHERE path LIKE „appdata_/preview/%“;

danach muss man folgende Befehle im Nextcloud absetzen:

sudo -u www-data php -f /var/www/nextcloud/occ files:scan –all
sudo -u www-data php -f /var/www/nextcloud/occ files:scan-app-data
sudo -u www-data php -f /var/www/nextcloud/occ preview:generate-all -vvv

Danke an @Rene für die Anmerkung!

Ich hoffe mit dem Artikel die Usability Eurer Nextcloud etwas gesteigert zu haben.

Ähnliche Beiträge

2 Kommentare

  1. bei mir war es erforderlich auf der DB den Inhalt zu löschen.

    mysql -u root -p
    USE nextcloud;
    DELETE FROM oc_filecache WHERE path LIKE „appdata_/preview/%“;

    danach musste ich folgende Befehle im Nextcloud absetzen:
    occ files:scan –all
    occ files:scan-app-data
    occ preview:generate-all -vvv

    dies hat bei mi zur Lösung beigetragen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert