Environnement
AEM Assets 6.0, 6.1, 6.2, 6.3.
Étapes
Les éléments ne peuvent pas être déplacés correctement à l'aide de l'API JCR Session.move. Au lieu de cela, vous devez utiliser l'API PageManager.move.
Par exemple :
PageManager pageManager = ((PageManager)resourceResolver.adaptTo(PageManager.class)); Resource sourceResource = resourceResolver.getResource("/content/dam/example.jpg"); String destinationPath = "/content/dam/test/example.jpg"; pageManager.move(sourceResource, destinationPath, null, false, true, null, null);
Malheureusement, cette méthode d'appel n'inclut pas complètement tout ce qui est fait par com.day.cq.wcm.core.impl.commands. Classe AbstractCopyMoveCommand qui gère la requête de l'interface utilisateur. Pour simuler entièrement l'interface utilisateur, vous devez déclencher cette requête en interne à l'aide de SlingRequestProcessor.
Voir cet article pour plus de détails sur la façon de déclencher une telle demande:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component.
La demande serait :
POST /bin/wcmcommand
Avec ces paramètres Post :
cmd=movePage integrity=true _charset=utf-8 destParentPath=/content/dam destName=test1.png srcPath=/content/dam/test.png
Accéder à votre compte