Lange Zeit war es hier recht ruhig im Blog, heute soll es aber mal wieder einen Artikel zur Performance-Optimierung euer Nextcloud geben. Ich war selbst etwas überrascht, dass es hier im Blog noch keinen Artikel über die App „Preview Generator“ gibt: Mit Hilfe dieser App kann man die Anzeige von Bildern (und vieler weiterer Dateien) in der Nextcloud erheblich beschleunigen. Ich würde diese App schon fast als essentiell beschreiben, wenn man die Cloud hauptsächlich zum Speichern und Weitergeben von Multimedia-Dateien nutzt. Höchste Zeit also, einen detaillierten Blick auf diese App zu werfen.
Inhalt
Das Problem mit der langsamen Anzeige von Bildern in der Nextcloud
Wenn ihr viele Bilder in der Cloud gespeichert und evtl. auch einen automatischen Upload euer Smartphone-Fotos in die Cloud eingerichtet habt, dann ist euch das Problem mit Sicherheit schon bekannt: Öffnet man in der Nextcloud einen Ordner mit vielen Fotos oder nutzt z.B. die App „Fotos“, um sich mal ein paar Bilder anzusehen, dauert das laden der Vorschau-Bilder eine gefühlte Ewigkeit. Auch wenn man ein geduldiger Mensch ist: Spätestens, wenn man einem Bekannten/Verwandten oder Freunden „mal eben schnell“ ein Foto in der Cloud zeigen möchte, ist die Aufmerksamkeitsspanne oft schon erreicht, bis das richtige Bild mal gefunden wurde und im Browser oder der Nextcloud-App angezeigt wird.
Hintergrund dieses Problems ist, dass z.B. Fotos moderner Smartphones heutzutage schon etliche Megabyte groß sind. Sollen diese in der Nextcloud nun in der Übersicht der Foto-App erstmalig angezeigt werden, generiert die Nextcloud automatisch kleinere Vorschau-Versionen der Bilder, die dann deutlich kleiner sind und daher schneller angezeigt werden können, da die Bilder in der Übersicht nicht in der vollen Auflösung angezeigt werden müssen. Dieser Prozess dauert aber u.U. etwas länger, da dieser ziemlich viele Systemressourcen beansprucht. Sobald diese Thumbnails einmalig erzeugt wurden, werden diese Bilder in der Übersicht dann in der Regel deutlich schneller dargestellt.
Hier setzt die App Preview Generator an: Mit dieser App können die Vorschauen schonmal „vorab“ im Hintergrund erzeugt werden. Dies hat dann zur Folge, dass auch beim erstmaligen Aufruf eines Bilder-Ordners nicht ewig gewartet werden muss, da die Thumbnails ja schon vor dem ersten Aufruf generiert wurden.
Nextcloud basiert jedoch auf der Programmiersprache PHP – diese ist für die Entwicklung von Webanwendungen sehr beliebt, jedoch bei solchen rechenintensiven Aufgaben nicht sonderlich performant. Daher wird das System beim Erzeugen der Vorschauen für einen längeren Zeitraum sehr unter Last stehen.
Mit imaginary gibt es jedoch einen Dienst, der auf der Nextcloud-Maschine betrieben werden kann und der extra für die effiziente und schnelle Erzeugung von Vorschauen von Bildern optimiert wurde. Nextcloud und auch der Preview Generator unterstützen seit Nextcloud 24 imaginary, so dass man diesen Dienst recht einfach nutzen kann, um dem Erzeugen von Bild-Vorschauen einen ordentlichen Boost zu verschaffen.
In diesem Artikel möchte ich euch nun zeigen, wie man den Preview Generator in der Nextcloud aktivieren kann. Für die Erzeugung von Bild-Vorschauen kommt imaginary als Docker-Container zum Einsatz.
Voraussetzungen
Um dieses Vorhaben umzusetzen, sind einige Voraussetzungen erforderlich:
- Zunächst brauchen wir einen Linux-Server, auf den wir direkten Zugriff per SSH haben. Dies wird in den meisten Fällen der gleiche Server sein, auf dem auch schon die Nextcloud läuft. Der direkte Zugriff per SSH ist notwendig, da die App Preview Generator später ebenfalls einen Cronjob benötigt, welcher für neue Bilder direkt die Vorschauen berechnet. Dies muss dabei ein „echter“ Cronjob sein. Für Webcron o.ä. dauert die Generierung der Thumbnails vermutlich zu lange, so dass dies oftmals vom System abgebrochen wird, bevor der Prozess erfolgreich beendet werden kann (Timeouts).
- Der Server muss für imaginary in der Lage sein, Docker-Container auszuführen. Wie ihr Docker auf einem Ubuntu Server installiert, habe ich bereits im Artikel Docker auf Ubuntu Server beschrieben.
- In der Nextcloud selbst darf die Server-seitige Verschlüsselung nicht aktiv sein. Dies wird ganz einfach von der App Preview Generator nicht unterstützt.
- Zu guter Letzt benötigen die Previews recht viel Speicherplatz auf der Festplatte des Servers. Auf einer kleinen Test-Instanz mit knapp 2 GB Bildern haben bei mir die Vorschauen ca. 1 GB Speicherplatz beansprucht. Dies ist aber nur ein Beispiel und hängt denke ich auch von den verwendeten Bildern ab. Es gibt aber ein paar Einstellungen am Preview Generator, wenn man für die Vorschauen nicht so viel Speicherplatz opfern möchte.
Einrichtung imaginary
Wir kümmern uns aber erst einmal um den Dienst imaginary. Man kann den Preview Generator später auch ohne diesen zusätzlichen Service betreiben, daher ist dieser Schritt optional. Dennoch profitiert die Generierung der Vorschauen enorm von imaginary und der Dienst ist wirklich schnell aufgesetzt, daher sollte dieser nach Möglichkeit auch installiert und genutzt werden.
Ich habe mich hier für die Docker-Variante entschieden, da diese am leichtesten umsetzbar ist und der Container keine Abhängigkeiten, wie z.B. Volumes o.ä. benötigt. Bei Bedarf kann imaginary auch direkt auf dem System (also ohne Docker) installiert werden, dies ist jedoch ein Vielfaches aufwendiger.
Von imaginary gibt es zwar auch offizielle Docker-Images, aus dem Nextcloud AIO Projekt („All-In-One“) ging jedoch eine Variante des Containers hervor, die schon für die Nextcloud optimiert ist. Daher verwende ich hier genau diese „AIO-Variante“.
Wenn Docker bereits auf dem System installiert ist, kann der Docker-Container einfach mit folgendem Befehl heruntergeladen und gestartet werden:
docker run -d --name=IMAGINARY -p 127.0.0.1:9000:9000 --cap-add=sys_nice --restart=always nextcloud/aio-imaginary
Hier sind folgende Punkte zu beachten:
- Der Parameter
-d
gibt an, dass der Container „detached“ gestartet wird, d.h. dieser läuft nach dem Start unsichtbar im Hintergrund. - Mit
-p 127.0.0.1:9000:9000
wird angegeben, dass der Container nur über das lokale System (127.0.0.1) erreichbar ist und der Port 9000 des Servers auf den Port 9000 des Docker-Containers weitergeleitet wird. Falls der Port 9000 auf dem Server bereits belegt sein sollte, kann man dies auch anpassen. Beispiel: Mit-p 127.0.0.1:9191:9000
nutzt imaginary auf dem Server den Port 9191. Der Ziel-Port des Docker-Containers muss aber immer Port 9000 sein. - Der nächste Parameter
--cap-add=sys_nice
wird benötigt, damit auch Vorschauen für das HEIC-Format erzeugt werden können. Wer keine Bilder in diesem Format nutzt, kann diesen Parameter auch weglassen. - Wichtig ist noch der Punkt
--restart=always
, damit der Container bei einem Neustart des Systems automatisch mit gestartet wird.
Ansonsten gibt es hier nichts weiter zu konfigurieren. Download und Start des Containers sollten recht schnell vonstattengehen.
Ob der Dienst funktioniert, könnt ihr durch folgenden Befehl schnell testen:
curl -O "http://127.0.0.1:9000/crop?width=500&height=400&url=https://raw.githubusercontent.com/h2non/imaginary/master/testdata/large.jpg"
Daraufhin sollte im aktuellen Verzeichnis eine Datei large.jpg zu finden sein, die aus der originalen Test-Datei mit einer geringeren Auflösung generiert wurde.
Den Preview Generator in Nextcloud installieren und konfigurieren
Nun folgt der nächste Schritt: Im App Store der Nextcloud sucht man nun nach der App „Preview Generator“ (zu finden in der Kategorie Multimedia) und installiert diese durch einen Klick auf Herunterladen und aktivieren.

Die App hat in der Nextcloud (Admin-)Oberfläche auch keine weiteren Optionen, die man einstellen könnte, daher wechseln wir per SSH auf die Kommandozeile des Nextcloud-Servers.
Hier öffnen wir die Konfigurationsdatei von Nextcloud:
nano /var/www/nextcloud/config/config.php
In dieser Konfiguration kann man das Verhalten des Preview Generators genauer definieren. Hier fügt ihr nun folgenden Code-Block ein (am besten am Ende der Datei, aber noch vor der letzten schließenden Klammer):
'enable_previews' => true, 'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\PNG', 1 => 'OC\\Preview\\JPEG', 2 => 'OC\\Preview\\GIF', 3 => 'OC\\Preview\\HEIC', 4 => 'OC\\Preview\\BMP', 5 => 'OC\\Preview\\XBitmap', 6 => 'OC\\Preview\\MP3', 7 => 'OC\\Preview\\TXT', 8 => 'OC\\Preview\\MarkDown', 9 => 'OC\\Preview\\Movie', 10 => 'OC\\Preview\\MKV', 11 => 'OC\\Preview\\MP4', 12 => 'OC\\Preview\\AVI', 13 => 'OC\\Preview\\PDF', 14 => 'OC\\Preview\\Imaginary', ), 'preview_imaginary_url' => 'http://127.0.0.1:9000',
Dies weist die Nextcloud an, Vorschauen zu erzeugen. Bitte darauf achten, dass das Feld enable_previews
nicht doppelt in der config.php aufgeführt wird.
Danach werden mit enabledPreviewProviders
die „Provider“ angegeben, mit denen Vorschauen für verschiedene Datentypen erzeugt werden können. Im Grunde genommen entspricht dies quasi den Datentypen, für die Previews benötigt werden. Die hier gezeigten Typen haben sich für mich als optimal herausgestellt, ihr könnt hier aber natürlich auch ein paar Datentypen weglassen oder hinzufügen. Eine Liste mit allen möglichen Werten findet man dabei in Nextcloud Admin-Doku. Wichtig ist hier die Angabe OC\\Preview\\Imaginary
(in diesem Beispiel der Listenpunkt 14). Nur damit wird dann auch wirklich imaginary für die Erzeugung von Vorschauen für Bildern verwendet.
Die letzte Zeile mit preview_imaginary_url
ist auch wichtig, da Nextcloud sonst nicht wüsste, wo der Dienst imaginary gefunden werden kann. Falls ihr weiter oben beim Starten des Docker-Containers einen anderen Server-Port gewählt habt, ist dieser hier entsprechend anzupassen.
Falls ihr imaginary nicht verwenden wollt – was ich euch aber empfehle – dann könnt ihr die Zeilen 14 => 'OC\\Preview\\Imaginary',
und 'preview_imaginary_url' => 'http://127.0.0.1:9000',
einfach weglassen. In diesem Fall würde dann der Preview Generator quasi „mit Bordmitteln“ die Vorschauen erzeugen, was aber länger dauert und das System mehr belastet.
Es gibt auch noch eine paar weitere Einstellungen, welche in der config.php bzgl. der Vorschauen vorgenommen werden können. Diese haben Standardwerte, müssen also nicht zwingend gesetzt werden. Meistens sind die Standardwerte hier auch eine gute Wahl. All diese Einstellungen würden in der config.php direkt nach 'preview_imaginary_url' => 'http://127.0.0.1:9000',
folgen. Ich gehe hier nur auf die wichtigsten Einstellungen ein, die evtl. interessant sein könnten, alle weiteren Optionen findet ihr in der bereits o.g. Nextcloud Admin-Doku:
'preview_max_x' => 4096,
: Die maximale Breite der erzeugten Vorschauen in Pixel (Standard: 4096). Bitte Hinweis unten beachten.'preview_max_y' => 4096,
: Die maximale Höhe der erzeugten Vorschauen in Pixel (Standard: 4096). Bitte Hinweis unten beachten.'preview_max_filesize_image' => 50,
: Die maximale Größe der Dateien in MB, für die Vorschauen erzeugt werden sollen (Standard: 50). Bei sehr großen Dateien benötigen die Vorschauen ebenfalls mehr Speicherplatz, daher ist es sinnvoll, die Dateigröße hier zu begrenzen.'preview_max_memory' => 256,
: Der maximale RAM-Verbrauch in MB, den die Generierung von Vorschauen belegen darf (Standard: 256).
Hinweis zu den maximalen Auflösungen der Vorschauen: Die Einstellungen preview_max_x
und preview_max_y
haben eine besondere Bedeutung, denn der Preview Generator erzeugt für eine Datei immer gleich mehrere Vorschauen in unterschiedlicher Auflösung: Dies sind immer Potenzen von 4, angefangen bei 64 Pixel bis zu den hier angegebenen maximalen Größen. Beispiel: Werden preview_max_x
oder preview_max_y
auf dem Standardwert von 4096 belassen, erzeugt der Preview Generator Vorschauen mit folgenden Auflösungen in Pixeln: 64, 256, 1024, 4096.
Tipp: Wenn man bei den Vorschauen etwas Speicherplatz einsparen will, kann man diese Werte auf 1024 oder gar 256 reduzieren.
Darüber hinaus gibt es noch Konfigurationen, die sich ebenfalls um die Größe der erzeugten Vorschauen in Pixeln drehen, allerdings auf der Kommandozeile mit OCC angegeben werden müssen:
cd /var/www/nextcloud sudo -u www-data php occ config:app:set --value="64 256 1024" previewgenerator squareSizes sudo -u www-data php occ config:app:set --value="64 256 1024" previewgenerator widthSizes sudo -u www-data php occ config:app:set --value="64 256 1024" previewgenerator heightSizes
Hier werden einfach alle Vorschau-Größen der Reihe nach angegeben. Dies müssen wieder Potenzen von 4 und dürfen nicht kleiner als 64 sein. Hier ist u.U. eine etwas feingranulare Konfiguration möglich, da sich die drei Befehle auf quadratische Bilder und Bilder im Quer- bzw. Hochformat beziehen.
Möchte man hier aber einheitliche Einstellungen für alle Bilder vornehmen, sind die Angaben preview_max_x
und preview_max_y
in der config.php von Nextcloud vorzuziehen.
Vorschauen erzeugen und Cronjob einrichten
Die Konfiguration des Preview Generators ist damit abgeschlossen, aber aktuell tut dieser noch nicht wirklich etwas. Der erste Lauf der Preview-Generierung muss über die Kommandozeile mit OCC angeworfen werden.
Achtung: Je nach „Füllstand“ der Cloud und der Leistung des Servers kann dieser Befehl sehr lange dauern.
cd /var/www/nextcloud sudo -u www-data php occ preview:generate-all -vvv
Das -vvv am Ende sorgt lediglich dafür, dass der Befehl etwas mehr ausgibt, beispielsweise die Datei, für die gerade eine Vorschau generiert wird. Ohne diesen Zusatz würde u.U. eine lange Zeit gar nichts passieren, so dass man sich schnell fragt, ob der Befehl überhaupt noch richtig läuft.
Ihr könnt nun mal eine zweite SSH-Session auf den Server aufbauen und in die Logs des Docker-Containers vom imaginary werfen:
docker logs -f IMAGINARY
Hier sollten dann (sehr viele) Logeinträge zu sehen sein, während Nextcloud Previews für Bilddateien erzeugt:
172.17.0.1 - - [26/May/2023 15:18:36] "POST /pipeline?operations=%5B%7B%22operation%22%3A%22autorotate%22%7D%2C%7B%22operation%22%3A%22fit%22%2C%22params%22%3A%7B%22width%22%3A4096%2C%22height%22%3A4096%2C%22stripmeta%22%3A%22true%22%2C%22type%22%3A%22jpeg%22%2C%22norotation%22%3A%22true%22%2C%22quality%22%3A%2280%22%7D%7D%5D HTTP/1.1" 200 702584 0.3976
Daran könnt ihr recht gut sehen, dass der Container gerade „am arbeiten“ ist.
Sobald dieser erste Lauf des Preview Generators erfolgreich beendet wurde, muss man nur noch einen Cronjob für die Nextcloud hinzufügen. Dieser sorgt dann dafür, dass Dateien, die neu in die Cloud hochgeladen werden, auch vom Preview Generator erkannt werden, so dass dieser seines Amtes walten kann. Der Cronjob muss auf jeden Fall im Kontext des Webserver-Benutzers erstellt werden (an der gleichen Stelle, wo auch schon der normale Cronjob für Nextcloud definiert wurde):
crontab -u www-data -e
Hier fügen wir nun am Ende eine neue Zeile hinzu:
*/30 * * * * php -f /var/www/nextcloud/occ preview:pre-generate > /dev/null 2>&1
Hiermit wird dieser Befehl alle 30 Minuten ausgeführt. Die Empfehlung von Nextcloud wäre hier zwar „alle 10 Minuten“, dies halte ich aber für etwas übertrieben. Wenn ihr allerdings einen Workflow habt, bei dem Vorschauen für neue Bilder in der Cloud mehr oder weniger sofort performant angezeigt werden müssen, dann könnt ihr den Wert hier entsprechend anpassen.
Damit ist der Preview Generator nun korrekt in Nextcloud eingebunden und Vorschauen für neu hochgeladenen Bilder werden automatisch erzeugt.
Fazit
Das war’s auch schon, ab jetzt sollten Vorschauen für alle möglichen Dateitypen und v.a. Bilder sehr viel schneller in der Cloud angezeigt werden. Einfach mal in die Fotos-App wechseln und durch ein paar Bilder durchscrollen, das sollte nun sehr viel schneller gehen als zuvor.
Ein Artikel über den Preview Generator bei Nextcloud war echt mal überfällig. Wer Nextcloud schon länger benutzt, wird den Preview Generator sicherlich schon längst installiert haben. Die Integration mit imaginary ist allerdings recht neu, daher vielleicht auch für die „alten Hasen“ ganz interessant. Auf jeden Fall wird dadurch der Einsatz der Nextcloud als „Multimedia-Cloud“ deutlich interessanter.
Weiterführende Artikel
- Nextcloud auf Ubuntu Server 22.04 LTS mit nginx, PostgreSQL/MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban
- Docker auf Ubuntu Server
Hallo Jan, vielen Dank für einen erneuten super Artikel.
Habe ich es eben umgesetzt, funktioniert super.
Erst dachte ich, dass es mit Docker in Verbindung mit GeoIP Probleme gibt, hat sich aber herausgestellt, dass es ohne Einschränkungen funktioniert.
Vielen Dank
Gruß Hans
Hi Hans,
super, wenn das bei dir gleich auf Anhieb geklappt hat. Die Dokumentation von Nextcloud v.a. in Bezug auf imaginary ist „durchaus verbesserungswürdig“, daher habe ich hier im Artikel mal alles niedergeschrieben, was ich dazu herausfinden konnte.
Gruß,
Jan
Danke Jan, läuft bei mir auch Super, sehr guter Tipp.
Gruß
Markus
Danke für den Artikel. Wie immer sehr informativ und gut verpackt!
Muss man sich Gedanken machen, wenn es um das Aufräumen der Miniaturansichten geht? Oder wird dafür automatisch gesorgt?
Hi Martin,
puh, da bin ich ehrlich gesagt überfragt. Ich würde aber erwarten, dass die Miniaturansichten ebenfalls weggeräumt werden, wenn die originale Datei nicht mehr da ist, weil diese z.B. gelöscht wurde.
Gruß,
Jan
Nur als reine Info:
Bei mir waren es jetzt 8812 Dateien. Ca. 10% davon waren 24 Megapixel Fotos.
(*.png;*.jpeg;*.jpg;*.gif;*.heic;*.bmp;*.mp3;*.txt;*.mkv;*.mp4;*.avi;*.pdf)
Dabei hat das System mit deinen obigen Einstellungen ca. 2GB mehr an Platz belegt. Benötigt hat er etwa 1,5 Stunden
sudo -u www-data php occ preview:generate-all -vvv
Die Miniaturansichten gelöschter Bilder werden inzwischen regelmäßig entsorgt, sofern die cron-jobs sauber eingerichtet sind. Genauer: OC\Preview\BackgroundCleanupJob erledigt diese Arbeit, dieser sollte im OC jobs table enthalten sein.
Verweise auf alte Previews in der Datenbank verschwinden spätestens mit einem „occ files:scan-app-data“.
LG Chris
Hi Chris,
danke für den Hinweis!
Hätte mich auch sehr gewundert, wenn die nicht mehr benötigten Previews nicht weggeräumt werden würden.
Gruß,
Jan
Wie hält man das ganze eigentlich aktuell? Kommt das mit einem normalen
apt-get update && apt-get upgrade -V && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean -y
mit?
Hi Martin,
in diesem Fall reicht das leider nicht aus, da imaginary über Docker läuft. Für ein Update muss hier der Docker-Container durch neues Pullen upgedatet werden.
Gruß,
Jan
Zunächst vielen Dank für die tollen Anleitungen, auch diese hier ist wieder mal gut erklärt, visuell übersichtlich und sehr hilfreich!
Ich hoffe der Kommentar ist hier richtig platziert:
In den ersten 2-4 Wochen funktionierte das hervorragend.
Zumindest hatte ich den Eindruck das die Previews erheblich schneller erstellt und auch angezeigt werden.
Seit ein paar Tagen bemerke ich allerdings das die Vorschaubilder nicht mehr richtig erzeugt werden und sich das ganze System aufhängt bzw der Browser bis zu 20minuten nicht reagiert wenn man auch nur ein Bild in der APP Fotos anklickt.
In der APP Files scheint das erstmal kein Problem zu sein, aber die heißt der CPU ganz schön ein bei der Menge Bilder die ich habe.
Wenn das System hängt hilft nur ein Neustart aller Dienste oder des ganzen Servers.
Anfangs dachte ich das hängt mit dem letzten Update der NC auf 27.0.2 zusammen.
Ich habe aber heute die ganze VM aus einem Backup ein paar Tage vor dem Update restored und das Problem besteht weiterhin. Ich habe jetzt schon ein paar Stunden Logs geprüft und Recherchiert komme aber leider nicht weiter. Es scheint als hätte nur ich das Problem, ich finde im Netz nichts hilfreiches.
Mir fehlt es auch etwas an Grundwissen zu Linux und dessen APPs um eine vernünftige Analyse zu machen.
Das Nginx-log sagt als Meldung immer wieder:
Connection refused) while connecting to upstream, client: …., server:…. , request: „GET /push/ws HTTP/1.1“, upstream: „http://127.0.0.1:7867/ws“, host:
Das klingt nach notify Push Dienst glaube ich, ob das zusammenhängt weiß ich allerdings nicht.
Ein Journal des Notify Push meldet:
notify_push.service: Main process exited, code=exited, status=203/EXEC
… systemd[1]: notify_push.service: Failed with result ‚exit-code‘.
Notify Push habe ich mal neu eingerichtet, aber nach ein paar Minuten, bzw. nach Klick auf ein paar Bilder kam der Fehler wieder.
Testweise hatte ich auch vor ein paar Wochen das APP „Memories“ mal installiert. Vielleicht macht das auch Ärger, zumindest taucht auch das in diversen Logfiles auf:
PostgresSQL Log:
ERROR: value „9223372036854775807“ is out of range for type integer
2023-08-23 16:10:03.126 CEST [18202] nextclouddbuser@nextclouddb CONTEXT: unnamed portal parameter $5 = ‚…‘
2023-08-23 16:10:03.126 CEST [18202] nextclouddbuser@nextclouddb STATEMENT: INSERT INTO „oc_memories“ („fileid“, „objectid“, „dayid“, „datetaken“, „mtime“, „isvideo“, „video_duration“, „w“, „h“, „exif“, „liveid“, „lat“, „lon“, „mapcluster“, „orphan“) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15)
Hier noch ein Auszug des Nextcloud Log wenn ich in der Fotos APP im Client-Browser ein Bild anklicke:
\\Router“,“type“:“->“},{„file“:“/var/www/nextcloud/index.php“,“line“:36,“function“:“handleRequest“,“class“:“OC“,“type“:“::“}],“File“:“/var/www/nextcloud/apps/fulltextsearch_elasticsearch/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php“,“Line“:113,“message“:“Imaginary preview generation failed: Client error: `POST http://127.0.0.1:9000/pipeline?operations=%5B%7B%22operation%22%3A%22autorotate%22%7D%2C%7B%22operation%22%3A%22fit%22%2C%22params%22%3A%7B%22width%22%3A256%2C%22height%22%3A256%2C%22stripmeta%22%3A%22true%22%2C%22type%22%3A%22jpeg%22%2C%22norotation%22%3A%22true%22%2C%22quality%22%3A%2280%22%7D%7D%5D` resulted in a `406 Not Acceptable` response:\n{\“message\“:\“Unsupported media type\“,\“status\“:406}\n“,“exception“:{},“CustomMessage“:“Imaginary preview generation failed: Client error: `POST http://127.0.0.1:9000/pipeline?operations=%5B%7B%22operation%22%3A%22autorotate%22%7D%2C%7B%22operation%22%3A%22fit%22%2C%22params%22%3A%7B%22width%22%3A256%2C%22height%22%3A256%2C%22stripmeta%22%3A%22true%22%2C%22type%22%3A%22jpeg%22%2C%22norotation%22%3A%22true%22%2C%22quality%22%3A%2280%22%7D%7D%5D` resulted in a `406 Not Acceptable` response:\n{\“message\“:\“Unsupported media type\“,\“status\“:406}\n“}}
Ich würde auch gern mal den Preview Ordner leer machen und alle Previews neu erzeugen lassen.
Das hatte ich einmal versucht und vielleicht auch dadurch das Problem ausgelöst??!
Vielleicht fehlende Berechtigungen im Preview Ordner – welche braucht der eigentlich, nur mein www-Data User oder weitere für die Nextcloud internen User?
Da ich die Probleme auch mit dem rückgesicherten Stand der VM von vor 2 Wochen habe kann es an meinen Änderungen und den Updates eigentlich nicht liegen.
Ich hoffe auf Hilfe bei der Fehlersuche, wenigstens einen Wink in welches Log ich vielleicht noch schauen sollte.
Besten Dank im Voraus!
VG Basti
Hi Basti,
an den Fehlern kann ich nun nichts direkt erkennen, dass er hier so „einfriert“. Dieses „406 Not Acceptable“ liegt wohl einfach nur an einem Datentyp, der nicht unterstützt wird. Das sollte ihn aber nicht gleich so runter ziehen.
Ich würde hier vermutlich von der anderen Seite mit der Fehlersuche beginnen: Deaktiviere mal alle Apps, die damit eigentlich nichts zu tun haben, v.a. die Volltextsuche und das Notify Push. Aber am besten gleich alle Apps, die nicht zwingend benötigt werden. Wenn das dann Besserung bringt, dann wieder App für App aktivieren und schauen, wann die Probleme wieder auftreten.
Hintergrund: Ich vermute hier, dass 2 oder mehr Apps nicht wirklich zusammenspielen und es hier evtl. zu Problemen kommt. Das hatte ich in letzter Zeit schon häufiger, auch wenn das nicht direkt etwas mit der Foto-/Memories-App zu tun hatte. Trotzdem waren das Fehlersituationen, auf die man nur per „trial & error“ gekommen ist, andernfalls hätte ich das niemals gefunden.
Ist zwar zeitaufwändiger, führt aber meistens zum Ziel (oder zumindest zu einem Hinweis).
Gruß,
Jan
Danke für die Anleitung. Wenn ich den Test mache mit dem Befehl:
curl -O „http://127.0.0.1:9000/crop?width=500&height=400&url=https://raw.githubusercontent.com/h2non/imaginary/master/testdata/large.jpg“
bekomme ich eine Datei mit dem Namen crop 1KB groß . Irgendetetwas scheint nicht zu funktionieren. Hast du eine Idee?
Hi,
also wenn ich diesen Befehl ausführe, ist die Datei sogar nur 127 Bytes groß. Sicher, dass dein OS hier nicht irgendwie aufrundet?
Gruß,
Jan