Adobe 我们可以从dam中删除上传的文件吗

Adobe 我们可以从dam中删除上传的文件吗,adobe,aem,Adobe,Aem,我需要以编程方式从DAM资产中删除上载的文件。我们可以从DAM中删除特定的文件节点吗 路径:- /content/dam/nextgen/Ehub-POD/… 在Ehub吊舱内,我正在创建一个文件夹并上传文件。在jsp页面中,我将选择特定的文件,并需要从dam以及jsp中删除该文件。让我们假设dam中有以下图像: /content/dam/nextgen/Ehub-POD/image1.jpg 要删除它,请使用jcr会话: session.removeItem("/content/dam/ne

我需要以编程方式从DAM资产中删除上载的文件。我们可以从DAM中删除特定的文件节点吗

路径:-
/content/dam/nextgen/Ehub-POD/…


在Ehub吊舱内,我正在创建一个文件夹并上传文件。在jsp页面中,我将选择特定的文件,并需要从dam以及jsp中删除该文件。

让我们假设dam中有以下图像:

/content/dam/nextgen/Ehub-POD/image1.jpg
要删除它,请使用jcr会话:

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();
}
或者您可以删除有关图像的所有信息,收到 有关裁剪、文件引用等的节点存储信息:

while (result.hasNext()) {
    Node node = result.nextNode();
    node.remove();
}
别忘了保存存储库更改

if (session.hasPendingChanges()) {
    session.save();        
}

通过卷曲的另一种方法:

您可以对映像路径执行CURL DELETE请求以将其删除。此外,您还可以通过以下命令使用CURL查找对图像的所有引用:

http://localhost:4502/bin/wcm/references.json?path=/content/dam/nextgen/Ehub-POD/test-image.png
这将为您提供使用此图像的所有位置的参考(CSS或JS除外)


“从dam和jsp中删除文件”是什么意思。JSP不会存储任何内容。资产数据的存储将位于您创建/上载的特定路径中。您可以编写代码来删除该特定节点并保存会话。是否尝试从JSP代码中删除DAM中的节点?从java中删除DAM中的节点。您好,感谢您的回复。我已经使用asset manager删除了资产节点。这不是这里需要的解决方案。