Umbenennung von Dateien
Dieses Step Plugin erlaubt die automatische Anpassung von Dateinamen innerhalb von Goobi Vorgängen.
Übersicht
Identifier
intranda_step_rename-files
Repository
Lizenz
GPL 2.0 oder neuer
Letzte Änderung
08.05.2025 15:21:42
Einführung
Dieses Plugin dient zu bedingen Umbenennung von Dateien innerhalb der verschiedenen Ordner eines Vorgangs von Goobi workflow. Die Benennung erfolgt dabei abhängig von einer Konfigurationsdatei, die für unterschiedliche Workflows jeweils anders aufgebaut sein kann.
Installation
Zur Installation des Plugins muss die folgende Datei installiert werden:
Um zu konfigurieren, wie sich das Plugin verhalten soll, können verschiedene Werte in der Konfigurationsdatei angepasst werden. Die Konfigurationsdatei befindet sich üblicherweise hier:
Dabei sieht der Inhalt dieser Konfigurationsdatei beispielhaft wie folgt aus:
Dieses Plugin wird in den Workflow so integriert, dass es automatisch ausgeführt wird. Eine manuelle Interaktion mit dem Plugin ist nicht notwendig. Zur Verwendung innerhalb eines Arbeitsschrittes des Workflows sollte es wie im nachfolgenden Screenshot konfiguriert werden.
Überblick und Funktionsweise
Das Plugin wird üblicherweise vollautomatisch innerhalb des Workflows ausgeführt. Es ermittelt zunächst, ob sich innerhalb der Konfigurationsdatei ein Block befindet, der für den aktuellen Workflow bzgl. des Projektnamens und Arbeitsschrittes konfiguriert wurde. Wenn dies der Fall ist, werden die einzelnen Elemente <namepart>
ausgewertet, mit den entsprechenden Werten für den Zähler und die Variablen aus Goobi workflow ausgestattet und anschließend miteinander verkettet. Die somit erzeugten Dateinamen werden nun für sämtliche relevanten Verzeichnisse des Goobi Vorgangs angewendet und mit den jeweils korrekten Dateinamenerweiterungen ergänzt (z.B. .tif
).
Um eine korrekte Umbennenung gewährleisten zu können, die auf dem originalen Dateinamen basiert, merkt sich das Plugin die originalen Dateinamen jeder Datei in einer Vorgangseigenschaft namens plugin_intranda_step_rename_files
. Mit dieser Vorgangseigenschaft wird sichergestellt, dass mehrfache Ausführungen des Plugins, mit möglichen Änderungen der Konfiguration, den ursprünglichen Dateinamen korrekt auflösen.
Standardmäßig berücksichtigt das Plugin für die Benennung die Dateien innerhalb der folgenden Unterverzeichnisse:
master
media
jpeg
alto
pdf
txt
xml
Migration
Dieser Abschnitt beschreibt notwendige Schritte zum Migrieren auf eine neue Plugin Version.
In älteren Versionen gab es die folgende Funktionalität:
Sollte innerhalb des Ordners eine Datei vorgefunden werden, die
barcode
innerhalb des Dateinamens enthält, so wird diese ebenfalls entsprechend des Namensschemas benannt. Als Zähler wird hier jedoch der Wert0
gesetzt.
Diese Funktionalität wurde in der aktuellen Version des Plugins entfernt. Durch die Einführung von Bedingungen (<condition>
Blöcke) in den <namepart>
Elementen, kann diese Funktionalität jetzt selbst flexibel konfiguriert werden.
Die Funktionalität wurde zuvor immer bedingungslos angewandt und hat den Zähler des <namepart>
mit dem Typ counter
auf 0
gesetzt, wenn der Dateiname das Wort barcode
beinhaltete. Dieses Verhalten kann jetzt explizit erzwungen werden. Wir zeigen im Folgenden ein Beispiel anhand eines counter
Elements mit vier Ziffern:
Dieser Auszug enthält zwei <namepart>
Elemente die nicht gleichzeitig aktiv sein können. Das erste <namepart>
Element ist ein Zähler und dann aktiv, wenn der {originalfilename}
(der originale Dateiname) nicht das Wort barcode
enthält. Das zweite <namepart>
Element ist das statische Wort 0000
und wird dann aktiviert, wenn der Dateiname das Wort barcode
enthält.
Das führt zu exakt dem selben Verhalten wie zuvor. Jetzt hingegen kann der Nutzer selbst entscheiden ob und wie er diese Funktionalität verwenden möchte und ggf. die Konfiguration anpassen.
Konfiguration
Die Konfiguration des Plugins erfolgt innerhalb der bereits erwähnten Konfigurationsdatei. Dort können verschiedene Parameter konfiguriert werden. Der Block <config>
kann für verschiedene Projekte oder Arbeitsschritte wiederholt vorkommen, um innerhalb verschiedener Workflows unterschiedliche Aktionen durchführen zu können. Die Elemente <namepart>
sind hierbei maßgeblich für die Generierung der Dateinamen.
project
Dieser Parameter legt fest, für welches Projekt der aktuelle Block <config>
gelten
soll. Verwendet wird hierbei der Name des Projektes. Dieser Parameter kann
mehrfach pro <config>
Block vorkommen.
step
Dieser Parameter steuert, für welche Arbeitsschritte der Block <config>
gelten
soll. Verwendet wird hier der Name des Arbeitsschritts. Dieser Parameter
kann mehrfach pro <config>
Block vorkommen.
folder
Dieser Parameter lässt die Nutzer steuern, welche Verzeichniss für die Umbenennung berücksichtigt werden sollen. Wenn hier als Wert *
angegeben wird, der Parameter fehlt oder der Wert nicht konfiguriert ist, werden die default-Settings verwendet.
updateMetsFile
Dieser Parameter lässt die Nutzer steuern, ob die Dateiverlinkungen in der METS Datei nach der Umbenennung aktualisiert werden sollen. Wenn nichts angegeben wird, ist diese Funktion standardmäßig aktiviert.
startValue
Dieser Wert steuert, mit welchem Startwert der hochzählende counter
beginnen
soll.
namepart
Dieser ebenfalls mehrfach verwendbare Parameter steuert die Generierung
der Dateinamen. Er kann statische Elemente beinhalten (static
),
den originale Dateinamen verwenden (originalfilename
),
Variablen aus Goobi nutzen (variable
), Metadaten nutzen (metadata
)
sowie einen Zähler erzeugen (counter
). Der Parameter originalfilename
entspricht dem originalen Dateinamen der Datei bevor das Plugin erstmalig
ausgeführt wird. Bei Metadaten wird der Name des Metadatentyps angegeben (beispielsweiseTitleDocMain
). Für die Typen variable
und metadata
kann das
Attribut format
definiert werden. Damit lässt sich der Wert anschließend formattieren
(beispielsweise %03d
für eine dreistellige Zahl mit führenden Nullen).
Für den Typen metadata
kann zusätzlich das Attributlevel
definiert werden. Dieses gibt an in welchem Strukturelement nach dem
Metadatum gesucht werden soll (bei Zeitungen beispielsweise auf Ausgabenebene `NewspaperIssue`).
Für die Generierung des Zählers ist entscheidend, welche Anzahl an Stellen definiert wurden.
Der Wert 00000
würde beispielsweise fünfstellige Zahlen mit ggf. vorangestellten Nullen
erzeugen. Auch ein Zähler kann das zusätzliche Attribut level
enthalten. In diesem Fall
ist der Zähler lokal für jedes Strukturlelement des definierten Typen level
. So können
bei Zeitungen beispielsweise Seitenzähler pro Ausgabe realisiert werden, wenn level
aufNewspaperIssue
gesetzt wird.
Die so definierten Bestandteile des Dateinamens werden für die Benennung miteinander verkettet und anschließend um die eigentliche Dateiendung ergänzt, um so die Datei zu benennen.
Darüber hinaus können <namepart>
Elemente mehrere <condition>
und <replace>
Elemente beinhalten um Bedingungen oder Ersetzungsanweisungen zu spezifizieren.
Bedingungselemente haben die Form
und können den Wert jeder VARIABLE
gegen einen regulären Ausdruck REGEX
prüfen. Wenn mehrere Bedingungen spezifiziert sind müssen alle erfüllt sein, damit das jeweilige <namepart>
Element aktiviert wird.
Ersetzungselemente haben die Form
und können beliebige reguläre Ausdrücke REGEX
in dem Wert des <namepart>
Elements durch REPLACEMENT
ersetzen (dies kann auch leer sein). Wenn mehrere Ersetzungen spezifiziert sind werden sie in der Reihenfolge ausgeführt, wie sie konfiguriert wurden, sodass am Ende ein finaler Wert des <namepart>
Elements entsteht.
Last updated