Motivation
In DAM/UI ist es möglich Dateien hochzuladen. Wenn zu viele/zu große Dateien hochgeladen werden, ist es möglich, dass der Nutzer während dem Upload Vorgang ausgeloggt wird, da das Framework Sessions nur für eine bestimmte Zeit ohne Interaktion am Leben hält. Die Dateien, die nun im Nirvana herumschwirren können nicht weiter bearbeitet werden. So kann es vorkommen, dass Nutzer Uploads wieder und wieder ausführen müssen, bis ihre Dateien in einem Durchlauf hochgeladen wurden.
Die DAM Upload Prozesse sind dazu da, diese abgebrochenen Vorgänge zu einem späteren Zeitpunkt fortsetzen zu können.
Aufbau
Die Funktionalität wird durch eine neue Tabelle gesteuert. Mit jedem Uploadformular in DAM UI wird ein DamUploadProcess Datensatz erzeugt. Dieser Datensatz enthält fast alle relevanten Daten, die ein Upload in DAM benötigt, um ausgeführt zu werden. Dieser Datensazt dient dazu, die Anzahl an Parametern zu reduzieren, die über HTTP-Anfragen an den Server übermittelt werden. Durch diesen Datensatz ist es auch nicht möglich, einen Upload mit bereits existierenden Dateien/IDs durchzuführen und so Fehler oder ungewollte Verhaltensweisen zu verursachen. Wird ein Upload nicht vollständig durchgeführt, so kann der Upload an einem anderen Zeitpunkt fortgesetzt werden, da alle nötigen Daten in der Datenbank persistiert werden.
Property | Bezeichnung | Beschreibung |
---|---|---|
fileIDs | Datei IDs | Array. In diesem Feld werden die IDs der in diesem Prozess hochgeladen Dateien gespeichert.Enthält ein Prozess keine fileIDs, so kann er nicht fortgesetzt werden. |
targetFolderID | ID des Zielordners | Ganzzahl. Die ID des Zielordners wird in diesem Feld hinterlegt. |
uniqueIdentifier | Identifikator | Zeichenkette. Diese Identifikation wird im Konstruktor der Entität erstellt. Sie wird genutzt um die Dateien in einem entsprechenden Temp-Verzeichnis abzulegen, sodass Dopplungen möglichst vermieden werden. |
eventParams | Event Parameter | Array. In diesem Array werden jegliche HTTP-Parameter abgelegt, die in das Upload Formular eingereicht werden, damit diese im Weiteren verarbeitet werden können. Ein Beispiel hierfür ist die ID einer Kategorie, wenn eine Datei in einer Kategorie hochgeladen werden soll. Diese Datei wird im Anschluss zur Kategorie verknüpft. |
Konfiguration
Die Funktion ist ohne Konfiguration einsatzbereit. In der Tabelle "damUiConfig" wurde jedoch ein Feld hinzugefügt, mit dem man die Lebenszeit dieser Prozessdatensätze defininieren kann. Der Standardwert liegt bei 24 (Stunden).
Garbage Collection
Wird ein Upload Vorgang durch die entsprechenden UI-Elemente abgebrochen (z.B. "Abbrechen" Button), so wird der Datensatz gelöscht. Das Löschen triggert ein Event woraufhin ein Listener in DAM/UI die nötigen Schritte einleitet, um die mit dem Prozess-Datensatz in Verbindungstehenden Daten/Dateien zu löschen.
Diese Löschlogik wird auch ausgelöst, wenn ein Prozess-Datensatz über brandbox gelöscht wird (entityAbstract::delete).
Darüber hinaus existiert auch eine Garbage Collection, welche die Datensätze anhand der konfigurierten Lebenszeit löscht.