Verschieben eines Assets in einem Anwendungscode

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

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online