簡體   English   中英

AEM資產有什么方法可以通過在java的工作流中創建文件夾來移動文件

[英]AEM asset Is there any way to move a file by creating a folder in a workflow in java

我想通過僅使用 java 中的工作流創建一個新文件夾來移動一些資產。我不想手動創建文件夾然后移動資產,因為有 10000 個資產要移動到不同的文件夾。

如果您正在考慮使用工作流創建文件夾 - AEM 中的文件夾只不過是jcr:primaryType一個節點,無論是sling:Folder還是sling:OrderedFolder 如果您的類路徑中有com.day.cq.commons.jcr ,則createPath 方法將幫助您創建不存在的節點。

您還可以使用addNode方法,然后使用javax.jcr.Node api 中的 setProperty 方法來創建此適當主要類型的文件夾。

將資產移動到這個新創建的節點(文件夾),可以在此之后繼續。 您可以使用javax.jcr.WorkSpaceclone 方法,該方法具有刪除現有節點的選項。


還有另一種直接的方式來轉移資產。 我建議您使用內置的com.adobe.granite.asset.api.AssetManager api對 DAM 資產執行 CRUD 操作。

session = resourceResolver.adaptTo(Session.class);  
String assetPath = "/content/dam/folderA/asset1.jpg";
String movePath = "/content/dam/folderB/asset1.jpg";
assetManager.moveAsset(assetPath, copyPath);

session.save()
session.logout()

AssetManager API 的進一步參考。

HelpX 文章

接口詳情

如果沒有適當的索引,移動大量資產可能會導致移動操作失敗。 監視日志以獲取警告消息,例如The query read or traversed more than X nodes. . 您可能需要將基於 Oak 的屬性添加到開箱即用的/oak:index/ntBaseLucene索引中以解決此問題。

更多細節在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM