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

要解决此问题,可以为用户添加资产文件夹的delete权限,也可以更改的属性
/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload

描述 description

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

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

15.01.2018 10:40:06.628 *ERROR* [ XX.XXX.XX.XX [ 1586753090032]  POST /content/dam/path/to/file.createasset.html HTTP/1.1]  com.day.XX.XXX.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)

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

环境

Adobe Experience Manager 6.1 SP1 (AEM 6.1 SP1)

原因

尝试上传资产时,用户对该文件夹没有delete权限。

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

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

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


指定的邮件

ERROR * POST /content/XXX/*.createasset.html HTTP/1.1]  com.XXX.XX.XXX.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