我需要以编程方式从DAM Asset中删除上传的文件。我们可以从DAM中删除特定的文件节点吗?
路径: -
/content/dam/nextgen/Ehub-POD/....
在Ehub-POD内部,我正在创建一个文件夹并上传文件。在jsp页面中,我将选择特定文件,并且需要从大坝以及jsp中删除文件。
答案 0 :(得分:0)
让我们想象一下,我们在大坝中有以下形象:
/content/dam/nextgen/Ehub-POD/image1.jpg
要删除它,请使用jcr Session
:
session.removeItem("/content/dam/nextgen/Ehub-POD/image1.jpg")
if (session.hasPendingChanges()) {
session.save();
}
来自dam的图片将被删除,现在您需要运行查询以找出图片的使用位置并删除fileReference
属性:
Workspace workspace = session.getWorkspace();
QueryManager qm = workspace.getQueryManager();
Query query = qm.createQuery("/jcr:root/content/websitename/*[@fileReference='/content/dam/nextgen/Ehub-POD/image1.jpg']", Query.XPATH);
QueryResult queryResult = query.execute();
result = queryResult.getNodes();
while (result.hasNext()) {
Node node = result.nextNode();
node.getProperty("fileReference").remove();
}
或者您可以删除有关图像的所有信息 节点存储有关裁剪,fileReference等的信息:
while (result.hasNext()) {
Node node = result.nextNode();
node.remove();
}
并且不要忘记保存存储库更改
if (session.hasPendingChanges()) {
session.save();
}
答案 1 :(得分:0)
通过CURL完成另一种方法:
您可以对图像路径执行CURL DELETE请求以将其删除。此外,您可以使用CURL通过以下命令找到对图像的所有引用:
http://localhost:4502/bin/wcm/references.json?path=/content/dam/nextgen/Ehub-POD/test-image.png
这将为您提供使用此图像的所有位置的引用(CSS或JS除外)。