上传资产时,工作流重复数百次 | 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