Skip to content

Nextcloud Hub8 Keine Previews

Nextcloud
2 1 421
  • Mit dem Upgrade auf Hub8 fing das Dilemma an, mir fehlten die Previews. Und das war diesmal eine echt harte Nuss. Es gibt diesen Befehl, der eigentlich alle Previews neu anlegen soll.

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

    Aber, ich bekam immer diese kryptische (für mich) Fehlermeldung.

    2024-06-10T15:09:10+00:00 In File.php line 56:
    2024-06-10T15:09:10+00:00                                     
    2024-06-10T15:09:10+00:00   [OCP\Files\GenericFileException]  
    2024-06-10T15:09:10+00:00                                     
    2024-06-10T15:09:10+00:00 
    2024-06-10T15:09:10+00:00 Exception trace:
    2024-06-10T15:09:10+00:00   at /nextcloud/lib/private/Files/Node/File.php:56
    2024-06-10T15:09:10+00:00  OC\Files\Node\File->getContent() at /nextcloud/lib/private/Files/SimpleFS/SimpleFile.php:74
    2024-06-10T15:09:10+00:00  OC\Files\SimpleFS\SimpleFile->getContent() at /nextcloud/lib/private/Preview/GeneratorHelper.php:73
    2024-06-10T15:09:10+00:00  OC\Preview\GeneratorHelper->getImage() at /nextcloud/lib/private/Preview/Generator.php:190
    2024-06-10T15:09:10+00:00  OC\Preview\Generator->generatePreviews() at /nextcloud/lib/private/PreviewManager.php:207
    2024-06-10T15:09:10+00:00  OC\PreviewManager->generatePreviews() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:230
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->parseFile() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:212
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->parseFolder() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:210
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->parseFolder() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:190
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->generateUserPreviews() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:136
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->OCA\PreviewGenerator\Command\{closure}() at /nextcloud/lib/private/User/Manager.php:666
    2024-06-10T15:09:10+00:00  OC\User\Manager->callForSeenUsers() at /nextcloud/apps/previewgenerator/lib/Command/Generate.php:135
    2024-06-10T15:09:10+00:00  OCA\PreviewGenerator\Command\Generate->execute() at /nextcloud/3rdparty/symfony/console/Command/Command.php:298
    2024-06-10T15:09:10+00:00  Symfony\Component\Console\Command\Command->run() at /nextcloud/3rdparty/symfony/console/Application.php:1040
    2024-06-10T15:09:10+00:00  Symfony\Component\Console\Application->doRunCommand() at /nextcloud/3rdparty/symfony/console/Application.php:301
    2024-06-10T15:09:10+00:00  Symfony\Component\Console\Application->doRun() at /nextcloud/3rdparty/symfony/console/Application.php:171
    2024-06-10T15:09:10+00:00  Symfony\Component\Console\Application->run() at /nextcloud/lib/private/Console/Application.php:213
    2024-06-10T15:09:10+00:00  OC\Console\Application->run() at /nextcloud/console.php:102
    2024-06-10T15:09:10+00:00  require_once() at /nextcloud/occ:11
    2024-06-10T15:09:10+00:00 
    2024-06-10T15:09:10+00:00 preview:generate-all [-p|--path [PATH]] [--] [<user_id>...]
    

    Ich weiß nicht, was ich alles versucht habe. Ich versucht dieses File.php zu finden, das ist gar nicht so einfach. Irgendwann bin ich dann bei meiner config.php gelandet. Meine 'enabledPreviewProviders' sahen anders aus, als beim config.sample.php. So habe ich mich entschieden, diese anzupassen.

      'enable_previews' => true,
      'preview_concurrency_all' => 8,
      'preview_concurrency_new' => 4,
      'preview_max_x' => 2048,
      'preview_max_y' => 2048,
      'preview_max_scale_factor' => 1,
      'preview_libreoffice_path' => '/usr/bin/libreoffice',
      'preview_max_filesize_image' => 50,
      'preview_max_memory' => 256,
      'preview_ffmpeg_path' => '/usr/bin/ffmpeg',
      'enabledPreviewProviders' => [
            'OC\Preview\BMP',
            'OC\Preview\GIF',
            'OC\Preview\JPEG',
            'OC\Preview\Krita',
            'OC\Preview\MarkDown',
            'OC\Preview\Movie', 
            'OC\Preview\MP3',
            'OC\Preview\OpenDocument',
            'OC\Preview\PDF', 
            'OC\Preview\PNG',
            'OC\Preview\TXT',
            'OC\Preview\XBitmap',
      ],
      'preview_file_endings' => [
        'jpg',
        'jpeg',
        'png',
        'gif',
        'bmp',
        'pdf'
      ],
    

    Irgendwann tauchten die ersten Previews auf. Seltsamerweise erzeugte er immer nur Previews, wenn die Dateiendung .jpg war. Wenn es .JPG war, wurde kein Preview erzeugt. Häh!?!?!?

    Ok, alle Dateien umbenannt.

    find <PATH>/Frank/files/ -type f -name '*.JPG' -exec rename 's/\.JPG$/\.jpg/' '{}' \;
    

    Danach wurden auch die Previews erzeugt.

    Noch ein paar Befehle, die hilfreich sind.

    Scant alle Files neu, nachdem man z.B. eines auf dem Filesystem umbenannt hat und trägt das in die Datenbank ein.

    sudo -u www-data php occ files:scan --all
    

    Generiert alle (?) Previews erneut!?

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

    Erzeugt nur Previews von allen geänderten / neuen Files (?)

    sudo -u www-data php occ preview:pre-generate
    

    Fazit

    Das letzte Upgrade auf 8.0 war eines der Schlechteren. Vieles ist kaputt und man weiß auch nicht genau, woran es liegt. Da ich dazu im Internet nicht viel gefunden habe, vermute ich ich bin alleine 🙂

    Dagegen spricht dieser Link -> https://github.com/nextcloud/previewgenerator/issues und dieser -> https://github.com/nextcloud/server/issues?q=is%3Aissue+preview+is%3Aopen

    Bei beiden findet man ganz viele offene Bugs im Zusammenhang mit der Preview Funktion. Ich stelle hier mal bewusst die Frage, ob das Nextcloud Team etwas zu viel Zeit damit verbringt KI / AI einzubauen?

    Leider weiß ich jetzt hier am Ende auch nicht zu 100% woran es lag, aber vielleicht gibt es dem ein oder anderen dem es helfen kann. Viel Erfolg!

  • Noch als Ergänzung, der Server läuft mit Debian 12

    # uname -a
    Linux webserver1-4gb-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux
    
  • Forgejo Installation mit Restic nach Hetzner S3 sichern

    Restic restic linux forgejo
    2
    2
    0 Stimmen
    2 Beiträge
    303 Aufrufe
    FrankMF
    Ich habe ja im obigen Beispiel, den gesamten Ordner von der Postgres Installation gesichert. backup_pfad_postgres="/home/pguser/db-data" Ich habe dann mal ein wenig in der Dokumentation gelesen und das hier gefunden. https://www.postgresql.org/docs/current/app-pgdump.html Einfach den Ordner zu sichern, ist ja bei jeder Datenbank ein gewisses Risiko. Die Konsistenz der Daten ist nicht gesichert. Darum gibt es bei den Datenbanken auch immer Tools, mit denen man die Daten sichern kann. In der Doku steht folgendes. pg_dump — extract a PostgreSQL database into a script file or other archive file Aber wichtiger ist das hier. pg_dump is a utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers). Das macht also konsistente Backups. Wichtig noch zu wissen ist folgendes. pg_dump only dumps a single database. To back up an entire cluster, or to back up global objects that are common to all databases in a cluster (such as roles and tablespaces), use pg_dumpall. Ok, das scheint gut geeignet zu sein, um die Datenbank zu sichern. Aber, wie? Auf meinen Eingangsbeitrag kam es zu folgendem Dialog auf Mastodon. https://nrw.social/deck/@nebucatnetzer@social.linux.pizza/114132208440509237 Das war der Anstoß sich mit dem Thema zu beschäftigen. Und ich hatte dann folgende Lösung. podman exec -it postgres pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt Ok, was mache ich hier? Wir führen einen Befehl vom Host aus gesehen, im Container aus. podman exec -it postgres Der Teil führt den folgenden Befehl im Container aus. pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt pg_dump - Das Tool fürs Backup -U postgres - Der Befehl wird als User postgres ausgeführt -f /var/lib/postgresql/data/dump.txt - Das Dump File wird im Data Ordner abgelegt, den haben wir ja persistent auf dem Host. Somit kann ich das jetzt einfach in mein Backup Script einbauen und brauchen nicht mehr den ganzen Ordner zu kopieren, sondern nur noch das Dump File. Ich werde diese Änderungen in das obige Script einbauen.
  • Debian Bookworm 12.7 released

    Linux debian linux
    1
    0 Stimmen
    1 Beiträge
    163 Aufrufe
    Niemand hat geantwortet
  • EndeavourOS - ein Test

    Linux endeavouros linux
    12
    0 Stimmen
    12 Beiträge
    605 Aufrufe
    FrankMF
    Ich möchte aus Fairness Gründen hier festhalten, das die Probleme mit dem Standby in Endeavour vermutlich kein Problem der Distrubution sind. Bitte dazu folgenden Beitrag von mir lesen. https://linux-nerds.org/topic/1397/debian-bookworm-12-test/3
  • Mobian - vollverschlüsselt

    Software pinephone mobian linux
    1
    0 Stimmen
    1 Beiträge
    338 Aufrufe
    Niemand hat geantwortet
  • Kopia - Mit Snapshots arbeiten

    Kopia linux kopi
    2
    4
    0 Stimmen
    2 Beiträge
    434 Aufrufe
    FrankMF
    Solltet Ihr mal snaps mit dem Status incomplete haben und möchtet diese loswerden :~$ kopia snap ls -i USER@HOST:/home/frank 2020-09-10 16:31:45 CEST k89770cab1061e00ada49efc41075ed34 incomplete:canceled 728.8 MB drwxr-xr-x files:8891 dirs:3033 (incomplete) 2020-09-10 16:40:05 CEST k27f028b63299983167cb0b4a0c85df80 incomplete:canceled 153.8 MB drwxr-xr-x files:1052 dirs:324 (incomplete) So was passiert z.B. wenn die Internetleitung rumzickt. Jarek meint, das wäre nicht schlimm, beim nächsten Snapshot wird das gefixt und die Daten genutzt, die schon verarbeitet wurden.
  • Restic - Backblaze B2 Cloud Storage

    Restic backblaze linux restic
    1
    2
    0 Stimmen
    1 Beiträge
    419 Aufrufe
    Niemand hat geantwortet
  • Redis Replication

    Angeheftet Verschoben Redis linux redis
    4
    1 Stimmen
    4 Beiträge
    599 Aufrufe
    FrankMF
    Um die Verbindung zu testen, kann man folgende Befehle nutzen. redis-cli -h 10.1.1.0 -p 6379 -a <PASSWORD> und telnet 10.1.1.0 6379
  • HDD umbenennen

    Linux linux
    1
    0 Stimmen
    1 Beiträge
    416 Aufrufe
    Niemand hat geantwortet