HI @prajwalre
Create a custom workflow as below and it should work
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.event.jobs.Job;
import org.apache.sling.event.jobs.consumer.JobConsumer;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import javax.jcr.Session;
@Component(
service = JobConsumer.class,
property = {
JobConsumer.PROPERTY_TOPICS + "=dam/event/asset"
}
)
public class AssetUploadRestrictionService implements JobConsumer {
@Reference
private ResourceResolverFactory resourceResolverFactory;
@Override
public JobResult process(Job job) {
try {
ResourceResolver resourceResolver = resourceResolverFactory.getAdministrativeResourceResolver(null);
Session session = resourceResolver.adaptTo(Session.class);
String path = (String) job.getProperty("path");
String name = session.getNode(path).getName();
if (!name.matches("your desired pattern")) {
// Move the asset to a quarantine folder or delete it
// session.getNode(path).remove();
// session.save();
}
return JobResult.OK;
} catch (Exception e) {
return JobResult.FAILED;
}
}
}