gocfl / ocfl / extensions
Ein entscheidender Vorteil von OCFL ist die Integritätssicherung. Mit gocfl lässt sich jederzeit überprüfen, ob eine Storage Root oder ein einzelnes Objekt noch der Spezifikation entspricht und ob alle Prüfsummen (Digests) korrekt sind.
validate-BefehlDer Befehl validate (oder das Alias check) führt eine tiefgehende Prüfung der OCFL-Struktur durch. Dabei werden sowohl die formalen Anforderungen der Spezifikation als auch die Konsistenz der Daten gegen das Inventar geprüft.
gocfl validate [Pfad zur Storage Root oder zum Objekt]
Wir validieren das spezifische Objekt in der Storage Root, das wir in den vorherigen Schritten erstellt und aktualisiert haben:
gocfl --log-level INFO --config ./gocfl/config/gocfl.toml validate ./gocfl/temp/test42/ -i urn:nbn:de:gbv:42-test1
Erklärung der Parameter:
validate: Der Befehl zur Überprüfung der Integrität../gocfl/temp/test42/: Der Pfad zur Storage Root.-i urn:nbn:de:gbv:42-test1: Die spezifische Objekt-ID, die geprüft werden soll. Wenn diese ID (oder das Flag -i) weggelassen wird, validiert gocfl nacheinander alle in der Storage Root gefundenen Objekte.Bei der Validierung führt gocfl folgende Schritte aus:
inventory.json wohlgeformt? Sind alle Versionen lückenlos vorhanden?state auf existierende Dateien im manifest? Gibt es “verwaiste” Dateien im content-Ordner, die in keinem Manifest gelistet sind?Falls eine Storage Root sehr viele Objekte enthält, kann die Validierung zeitaufwendig sein. gocfl bietet Flags, um die Prüfung einzugrenzen:
gocfl validate ./gocfl/temp/test42/ --object-id urn:nbn:de:gbv:42-test1
gocfl validate ./gocfl/temp/test42/ --object-path 1f7/d28/1ac/1f7d281acc...
Wenn die Validierung abgeschlossen ist, gibt gocfl eine Zusammenfassung aus. Dabei ist es wichtig, zwischen Fehlern (Errors) und Warnungen (Warnings) zu unterscheiden.
{"level":"info","time":"2026-03-14T17:13:59Z","message":"loading configuration from "}
2026-03-14T17:13:59Z INF validating '/home/ocfl/gocfl/temp/test42' host=gocfl timestamp="..."
2026-03-14T17:13:59Z WRN extension NNNN-gocfl-extension-manager is not registered ... validationErrorCode=W013 validationErrorMessage="‘In an OCFL Object, extension sub-directories SHOULD be named according to a registered extension name.’"
2026-03-14T17:13:59Z WRN extension NNNN-content-subpath is not registered ... validationErrorCode=W013
...
2026-03-14T17:13:59Z INF object 'urn:nbn:de:gbv:42-test1' with object version '1.1' found host=gocfl task=checker ...
[extension NNNN-content-subpath is not registered]
#W013 - ‘In an OCFL Object, extension sub-directories SHOULD be named according to a registered extension name.’ []
...
no errors found
2026-03-14T17:14:00Z INF Duration: 221.808179ms host=gocfl ...
W013.NNNN-content-subpath) nicht offiziell bei der OCFL-Community registriert sind (daher das Präfix NNNN).E001, E066) würden auf eine Verletzung der OCFL-Kernspezifikation hinweisen (MUST-Anforderungen).| Zurück zum Aktualisieren eines Objektes | Zurück zum Inhaltsverzeichnis | Weiter zur Anzeige (display) |