Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.

AEM Scheduler to remove the asset

Avatar

Community Advisor

Hi Community,

I want to create a scheduler by which I can remove a asset of specific extension from DAM in specific time duration.

I am trying to do it. but getting failure.

ResourceResolver writeResourceResolver;

ResourceResolverFactory rrFactory;

public void run() {

/*  creating a user to remove the asset and did the configuration in user mapping with all access to user.*/   

Map<String, Object> param = new HashMap<String, Object>();

param.put(ResourceResolverFactory.SUBSERVICE, "getResourceResolver");

ResourceResolver resourceResolver = rrFactory.getServiceResourceResolver(param);

Session session = resourceResolver.adaptTo(Session.class);

session.refresh(true);

LOG.debug("User id " + session.getUserID());

if (session != null) {

if (session.itemExists(filename)) {

Node fileNameNode = session.getNode(filename);

fileNameNode.remove();

session.save();

session.logout();

LOG.debug("file Deleted");

}

} else {

LOG.error("session is null");

}

}

6 Replies

Avatar

Level 9

try using the below example. Make sure you have created a system user for the scheduler service. https://helpx.adobe.com/experience-manager/using/aem-first-components1.html

Avatar

Community Advisor

Hi, I am able to achieve this. but now I have issue to find the file with certain extension only. and delete them from specific folder.

Avatar

Level 10

Also - create a workflow to perform CRUD operations on Assets to meet your business requirements. You can create custom workflow steps to search for assets, etc,

Your solution should be

A (Scheduler Service) -> B (Invokes a workflow that performs operations on Assets).

Avatar

Administrator

Have checked the Assets API.. there you can get name and last modified value by calling getName() getLastModified() com.day.cq.dam.api.Asset



Kautuk Sahni