環境

AEM Assets 6.0、6.1、6.2、6.3

手順

JCR Session.move API を使用してアセットを正しく移動することはできません。  代わりに PageManager.move API を使用する必要があります。

例:

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

残念ながら、そのメソッドの呼び出しには、com.day.cq.wcm.core.impl.commands で実行されるすべての処理が含まれているわけではありません。UI からのリクエストを処理する AbstractCopyMoveCommand クラス。UI を完全にシミュレートするには、SlingRequestProcessor を使用してこのリクエストを内部的に送信する必要があります。

そのようなリクエストを内部的に解除する方法の詳細については、この記事を参照してください。
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component

リクエストは次のようになります。

POST /bin/wcmcommand

次の POST パラメーターを使用します。

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

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー