我需要以编程方式从DAM Asset中删除上传的文件。我们可以从DAM中删除特定的文件节点吗?
路径:- /content/dam/nextgen/Ehub-POD/....
在Ehub-POD中,我创建了一个文件夹并上传文件。在jsp页面中,我将选择特定的文件,并需要从dam和jsp中删除该文件。
发布于 2017-03-16 16:19:22
让我们假设我们在dam中有以下图像:
/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();
}发布于 2017-03-16 18:40:34
另一种通过CURL实现的方法:
您可以对镜像路径执行CURL DELETE请求将其移除。此外,您还可以通过以下命令使用CURL查找对图像的所有引用:
http://localhost:4502/bin/wcm/references.json?path=/content/dam/nextgen/Ehub-POD/test-image.pngCSS这将为您提供使用此图像的所有位置的参考(
或JS除外)。
https://stackoverflow.com/questions/42813596
复制相似问题