上传资产时,工作流重复数百次 | AEM

描述 description

问题
上传mp4文件 Assets 通过拖放操作控制台,每个mp4文件的工作流在数小时内重复数百次。
例如,的工作流 DAM更新资产 一个mp4反复了890次。 工作流实例结束并且新工作流实例开始后,每5秒执行一次。

此问题会生成类似于以下内容的错误消息:

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)

另一个报告的症状是资源上传期间屏幕上的红色闪烁。

环境

AEM 6.1 SP1

原因

尝试上传资源的用户没有 delete 文件夹的权限。

因此,当用户上传大文件(5 MB以上)时,AEM会上传该文件,并将其划分为多个块,这些块存储在asset节点下。

上传所有块后,AEM会将这些块合并为原始文件,启动DAM更新资产工作流,并清除这些块。

但是,当用户没有 delete 权限,清除块失败,因此,文件上传再次重新启动。


指定的消息

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

解决方法 resolution

分辨率
可通过两种方式解决此问题:

分辨率方法1
添加 delete 用户的资产文件夹权限。

解决方法2
更改以下对象的属性:
/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload

要增加块上载的最小字节数,请增加 chunkUploadMinFileSize.
要禁用区块上载,请将false设置为 chunkUploadSupported.

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