Workflow wiederholt Hunderte von Malen beim Hochladen von Assets | AEM

Beschreibung description

Problem
Hochladen von MP4-Dateien in Assets -Konsole per Drag & Drop verwenden, wiederholten die Workflows für jede mp4-Datei Hunderte Male für Stunden.
Beispielsweise die Workflows von DAM-Update-Asset für ein MP4 890-mal wiederholt. Alle 5 Sekunden, nachdem eine Workflow-Instanz beendet und eine neue Workflow-Instanz gestartet wurde.

Dieses Problem erzeugte Fehlermeldungen ähnlich den folgenden:

15.01.2018 10:40:06.628 *ERROR* XX.XXX.XX.XX 1515980405832 POST /content/dam/path/to/file.createasset.html HTTP/1.1 com.day.cq.dam.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.

org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.

...

Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied

...

Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakAccess0000: Access denied

at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.checkPermissions(PermissionValidator.java:212)

at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.childNodeDeleted(PermissionValidator.java:168)

Ein weiteres berichtetes Symptom war ein rotes Blinken auf dem Bildschirm während des Asset-Uploads.

Umgebung

AEM 6.1 SP1

Ursache

Der Benutzer, der versucht hat, das Asset hochzuladen, verfügt nicht über die delete -Berechtigung für den Ordner.

Wenn der Benutzer daher eine große Datei (5 MB+) hochlädt, lädt AEM die Datei hoch, die sie in mehrere Abschnitte unterteilt, die unter dem Asset-Knoten gespeichert sind.

Nachdem alle Blöcke hochgeladen wurden, konsolidiert AEM die Blöcke als Originaldatei, startet den Workflow DAM Update Asset und löscht die Blöcke.

Wenn der Benutzer jedoch nicht über die delete -Berechtigung schlägt das Löschen der Blöcke fehl, sodass der Datei-Upload erneut gestartet wird.


Angegebene Nachrichten

ERROR * POST /content/dam/*.createasset.html HTTP/1.1 com.day.cq.dam.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.

org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.

Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied

Auflösung resolution

Lösungen
Es gibt zwei Möglichkeiten, dieses Problem zu beheben:

Auflösungsmethode 1
Fügen Sie die delete Berechtigung für Asset-Ordner für den Benutzer.

Auflösungsmethode 2
Ändern Sie die Eigenschaften von:
/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload

Erhöhen Sie zum Erhöhen der minimalen Bytes für den Chunk-Upload die Anzahl der chunkUploadMinFileSize.
Um den Chunk-Upload zu deaktivieren, setzen Sie false auf chunkUploadSupported.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f