Ambiente

AEM Assets 6.0, 6.1, 6.2, 6.3

Etapas

Os ativos não podem ser movidos corretamente usando a API Session.move do JCR.  Em vez disso, você deve usar o API PageManager.move.

Por exemplo:

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);

Infelizmente, essa chamada de método não inclui totalmente tudo o que é feito pelo com.day.cq.wcm.core.impl.commands. Classe AbstractCopyMoveCommand que manipula a solicitação da interface do usuário. Para simular totalmente a interface do usuário, você teria que disparar internamente essa solicitação usando o SlingRequestProcessor.

Veja este artigo para detalhes sobre como disparar internamente tal pedido:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component

A solicitação seria:

POST /bin/wcmcommand

com estes parâmetros do POST:

cmd=movePage
integrity=true
_charset=utf-8
destParentPath=/content/dam
destName=test1.png
srcPath=/content/dam/test.png

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online