Dateinamen und Ordnerstruktur in paperless-ngx automatisch vergeben lassen

Fragen und Anregungen zu diesem Blogbeitrag kannst du direkt unter diesem Thread kommentieren.

Hallo in die Runde

Als erste für mich wichtige Frage wäre, ob es möglich ist, eine bestehende
Unterordnerstruktur in den Scaninput Ordner zu legen. Der Wunsch hierbei wäre, dass der Dateipfad beim Import als Tags übernommen wird.

Beispiel 1:

Die Privatrechnungen für die Praxis meiner Frau (95 % Kassenabrechnungen via Dienstleister) erledige ich derzeit noch mit Word mit Hilfe der Serienbrieffunktion und mathematischen Feldfunktionen (Produkt- und Summenbildung). Daher liegt in der Struktur „Privatabrechnung“ eine Ordnerschicht mit Jahreszahlen und unter diesen Ordnern Patientennamen. Darin liegen die Doc’s und die PDF Kopien der Rezepte.

Privatabrechnung\2022\Mueller Gerd\Rechnung01.docx
Privatabrechnung\2022\Mueller Gerd\220812_Scan01.pdf
Privatabrechnung\2022\Mueller Gerd\Rechnung02.docx
Privatabrechnung\2022\Mueller Gerd\220812_Scan02.pdf
Privatabrechnung\2022\Mueller Gerd\Rechnung03.docx
Privatabrechnung\2022\Mueller Gerd\220812_Scan02.pdf

Mein Traum:
Ich ziehe den Ordner „Privatrechnungen“ in Scaninput und beim konsumieren vergibt Paperless den Dateien die Tags
z.B. „Privatabrechnung“, „2023“, „Mueller_Gerd“

Wäre das denkbar?

LG Achim

Mein Traum:
Ich ziehe den Ordner „Privatrechnungen“ in Scaninput und beim konsumieren vergibt Paperless den Dateien die Tags
z.B. „Privatabrechnung“, „2023“, „Mueller_Gerd“

Wäre das denkbar?```

Das ganze geht halt dann nur beim Importieren beim ersten mal... Ich glaube nicht das du dann ständig immer wieder die Ordnerstrucktur wiederherstellen willst oder die Dokumente dort gezielt speichern... bzw. bleiben die Leeren Ordner überhaupt stehen wäre die wichtigere Frage.
Vielleicht zum KI Training nicht der schlechteste weg mit einem Massenimport... aber du wirst so auch sehr viel händisch ändern müssen wenn es nicht so ganz klappt... oder neu anfangen.

Ich hab das etwas anders gelöst fürs Importieren über die Speicherpfade
"{correspondent}/{created_year}/{document_type}-{created_month_name_short}" z.B.

Einfacher und ohne seine Hirnwindungen jetzt zu zerbersten wäre es deinen Order einfach zu kopieren in den Consume-Ordner und in der Live-Umgebung zu sehen ob es klappt ... im Notfall Löschen und ändern und erneut versuchen.

Die Funktion "Arbeitsabläufe" könnte das ganze vielleicht noch ergänzen.

Hallo. Vielen dank für den Guide. Leider klappt das bei mir bisher noch nicht. Ich habe paperless via Portainer laufen. Die Variablen habe ich über den Container Manager von Synology hinzugefügt, den Container neu gestartet und den Renamer über die Portainer Console ausgeführt.
Allerdings werden die Dateinamen nicht angewendet, wenn ich neue Dokumente hochlade. Hat vielleicht jemand einen Tipp?

Hallo,
ich bin auf das Totorial gestossen und dachte mir das ist genau wasich suche :slight_smile:

leider habe ich Probleme in der Umsetzung und hoffe ihr könnt mir einen Tipp geben wo ich falsch auf ddem Weg bin.

Ich habe Docker und Docker Compose installiert und dann paperless, anhanden einer anderen Anleitung.

Da ich keine docker-compose.env hatte habe ich eine erstellt im selben Ordner wo auch die docker-compose.yml liegt und dann in der docker-compose.yml beim Webserver folgenden Eintrag hinzugefügt.

env_file:
      - docker-compose.env

In der docker-compose.env hab ich folgende zwei zeilen eingetragen:

PAPERLESS_FILENAME_FORMAT={created_year}/{title}-{tag_list}
PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=True

Anschliessend hab ich dann unter /home/paperless folgendes cmd ausgeführt:

root@ct-Docker:/home/paperless# docker-compose exec webserver document_renamer
100%|█████████████████████████████████████████████████████████████████████████| 36/36 [00:00<00:00, 295.51it/s]

Sieht so aus als ob er alle gemacht hat was er sollte, es sind 36 Files im paperless und diese hätte er nun umbenennen sollen nach der angegebenen Richtlinie.

Leider sind alle Files noch imemr so benannt wie ich sie hochgeladen habe.

Kann mir jemand sagen was ich falsch mache?

Danke

Der Renamer hilft dir leider dabei nicht…
Ich habe das auch erst kürzlich so ändern wollen.
Der Eintrag in der config bewirkt dies nur bei neuen Dokumenten.

Wenn du den Renamer bemühen willst musst du die änderungen in den Speicherpfaden im Django-Menü ändern und dann den Renamer aufrufen.
Ich habe es auf beide Varianten gemacht und bei Django musste ich den Renamer anstoßen.

Du musst deine Speicherpfade ändern dann werden die Dokumente automatisch umbenannt und verschoben … is wesentlich einfacher.

Ok dann habe ich das Tutorial komplett falsch verstanden, da steht das nämlich so drin.

Also da ich zum testen nur mal 36 Dokumente hochgeladen habe bin ich vermutlich schneller wenn ich die nochmal neu hochlade, alle neuen Dokumente, egal ob über Website, Scanner oder Handyapp sollten dann aber richtig benannt werden oder?

Ich kann dir nur sagen wie es bei mir war.

Kann auch sein dass es zufällig so war.
Waren zwei nahezu identische Installationen auf zwei Raspberry Pi 4b.

Speicherpfad geändert und es wurde automatisch alles arrangiert.

In Django eigentlich das selbe gemacht und nix ist passiert und der renamer musste losgelassen werden.

Ich meine in einem der letzten Release-Notes von paperless-ngx gelesen zu haben, dass die Speicherpfade nun automatisch den Renamer auslösen. Ich werde das noch recherchieren. Früher war es definitiv so, dass der Renamer ausgeführt werden musste, um neue Speicherpfade auch im Dateisystem nachzuziehen.

Hallo zusammen,

zunächst einmal vielen Dank für all die klasse Tutorials. Ich selbst bin aktuell noch frisch dabei, paperless-ngx aufzubauen und möchte dieses System gerne für mehrere Familienmitglieder bereitstellen (inkl. Kinder und separatem Business-Konto).

Mein Ziel daher: Multi User-Nutzung, wobei jedes Familienmitglied eine eigene Struktur und entsprechende Benutzerprofile auf dem Netzwerkscanner erhalten soll.

Meine noch offenen Fragen sind dabei aktuell:

1.) Der Standard-Dateiname ist siebenstellig und fortlaufend.

  • Wo kann ich den Dateinamen auf beispielsweise 10 Stellen erhöhen und somit verändern?

2.) Multi User Struktur:
Nach meinem Verständnis nach ist eine Multi User Struktur nach aktuellem Stand über die Variable „{owner_username}“ zu realisieren. Somit wird in der Dateistruktur zunächst der jeweilige Benutzer angesprochen.

Da ich aus meinem bisherigen klassischen „Windows Explorer Workflow“ bereits eine in sich strukturierte Ablage vorliegen habe, möchte ich dieses Struktur zumindest im Hintergrund von paperless-ngx so gerne auch weiter betreiben und entsprechend anlegen. Das sähe mit der Variable „{owner_username}“ in etwa so aus:

Thomas (Privat)
___2024
______Amazon
_________Rechnungen
____________2024-03-12_Rechnung_Amazon_Rechnungsnummer_Bestellnummer.pdf

Thomas_Business (Business)
___2024
______Amazon
_________Rechnungen
____________2024-03-12_Rechnung_Amazon_Rechnungsnummer_Bestellnummer.pdf
______Alternate
_________Rechnungen
____________2024-02-14_Rechnung_Alternate_Rechnungsnummer_Bestellnummer.pdf
_________Lieferscheine
____________2024-02-15_Lieferschein_Alternate_Lieferscheinnummer_Bestellnummer.pdf

Noah (Kind)
___2024
______Comdirect
_________Abrechnungen
____________2024-01-01_Abrechnung_ETF-XY.pdf
____________2024-02-01_Abrechnung_ETF-XY.pdf
_________0_Kindergarten
____________Rechnungen
_______________2024-01-01_Rechnung_Kindergartennamen_Noah.pdf
____________Informationen
_______________2024-05-18_Ausflug_Noah.pdf

Die Einstellung des „PAPERLESS_FILENAME_FORMAT“ sieht aus meiner Sicht also wie folgt aus:
{owner_username}/{created_year}/{correspondent}/{created_year}-{created_month}-{created_day}_{title}

Wie ersichtlich ist, würde ich gerne zusätzlich noch mit Korrespondentengruppen arbeiten und diesen das Präfix „0_“ davorstellen, wenn darunter weitere und eigene Korrespondenten fallen. Siehe oben das Beispiel „0_Kindergarten“.

Meine konkreten Fragen wären also:

  • Wie und wo kann ich solche „Korrespondentengruppen“ mit einem Präfix erstellen?
  • Wie genau kann ich bei neuen Dokumenten „out of the scanner“ den fixen Dateinamen nach dem Schema „Jahr-Monat-Tag_Rechnung_Korrespondent/Lieferant_Rechnungsnummer_Bestellnummer“ definieren?
    Das Datum ist klar: {created_year}-{created_month}-{created_day}_ … aber der Rest?

Ich hoffe, dass ich meine Vorhaben und meine Gedanken einigermaßen verständlich formulieren konnte.

Mir ist auch klar, dass es diese Details im Detailnamen bei solch einem DMS eigentlich nicht braucht. Dennoch würde ich es nach Möglichkeit gerne umsetzten, weil ich auch meinen ganzen „Altbestand“ mit einpflegen möchte und dann gerne einheitlich fahre.

Vielen Dank schon mal für eure Tipps!

Garnicht da es sie nativ nicht gibt.
Da musst du selbst basteln via Der Dokumentation.
Da kannst du dann zwischen die Klammern auch eigene Begriffe als Dateiname oder Ordnername einfügen

{created_year}/Gruppenname1{created_month}/Gruppenname2{created_day}

Out of the Scanner wird der Name wie bei deinem Hersteller üblich gesetzt, hierzu im Web-UI gucken auf deinem Gerät.
Ansonsten garnicht oder du tippst es jedesmal ein oder erstellst dir mehrere Profile usw.
Die Namen die für den Import verwendet werden sind dann in den Meta-Daten gespeichert… kannst aber auch im Speicherpfad den Originalnamen wieder abspeichern lassen.

Hallo zusammen,

erst einmal vielen Dank für die hilfreichen Blog- und Forenbeiträge!
Noch nutze ich Paperless nicht, möchte aber von Anfang an die Weichen richtig stellen, bevor ich mein Archiv (bisher nur im Dateisystem) richtig umziehe.

Meine Frage ist: Kann die Ordnerstruktur auch automatisch in weiteren Unterverzeichnissen geschehen?
Bisher ist mein Dateisystem etwa so aufgebaut:

Banken

  • DKB
    – Schriftverkehr
    – Kontoauszüge
  • Comdirect
    – Schriftverkehr
    – Kontoauszüge

Versicherungen

  • KFZ
    – KFZ 1
    – KFZ 2
  • Krankenversicherung
    – Abrechnungen

etc

also durchaus mit 3-4 Unterverzeichnissen

Die entsprechenden „Unterordner“ würde ich dann künftig mit Tags realisieren.

Aber angenommen, ich habe die Tags „Versicherung“, „Krankenversicherung“, „Schriftverkehr“ vergeben - wie sorge ich dann dafür, dass die Datei im Unterordner
Versicherung / Krankenversicherung / Schriftverkehr
landet?

Aus der Variable {tag_list} kann ich ja keine verschiedenen Ordner erzeugen?