Risorse AEM 6.0, 6.1, 6.2, 6.3
Le risorse non possono essere spostate correttamente utilizzando l'API Session.move di JCR. È invece necessario utilizzare l' API PageManager.move.
Ad esempio:
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);
Sfortunatamente, questa chiamata al metodo non include completamente tutto quello che è stato fatto dai com.day.cq.wcm.core.impl.commands. Classe AbstractCopyMoveCommand che gestisce la richiesta dell'interfaccia utente. Per simulare completamente l'interfaccia utente, è necessario attivare internamente questa richiesta utilizzando lo SlingRequestProcessor.
Vedere questo articolo per i dettagli su come estinguere internamente una tale richiesta:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component
La richiesta sarà:
POST /bin/wcmcommand
con questi parametri POST:
cmd=movePage integrity=true _charset=utf-8 destParentPath=/content/dam destName=test1.png srcPath=/content/dam/test.png
Accedi al tuo account