Umgebung

AEM Assets 6.0, 6.1, 6.2, 6.3.

Schritte

Assets können nicht ordnungsgemäß mithilfe der JCR-Session.move-API verschoben werden.  Stattdessen müssen Sie die PageManager.move API verwenden.

Beispiel:

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

Leider enthält dieser Methodenaufruf nicht alles, was von den com.day.cq.wcm.core.impl.commands erledigt wird. AbstractCopyMoveCommand-Klasse, die die Anforderung von der Benutzeroberfläche verarbeitet. Um die Benutzeroberfläche vollständig zu simulieren, müssten Sie diese Anforderung intern mit dem SlingRequestProcessor auslösen.

In diesem Artikel finden Sie Einzelheiten dazu, wie Sie eine solche Anfrage intern auslösen können:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component.

Die Anfrage wäre:

POST /bin/wcmcommand

mit diesen POST-Parametern:

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

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie