我需要从 DAM 获取到期资产吗?
我试过下面的代码片段。但它不工作。
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServerException, IOException {
try {
ResourceResolver resourceResolver = resolverFactory.getServiceResourceResolver(null);
session = resourceResolver.adaptTo(Session.class);
// create query description as hash map (simplest way, same as form post)
Map<String, String> map = new HashMap<String, String>();
//set QueryBuilder search criteria
map.put("type", "dam:Asset");
map.put("path", "/content/dam/images/rt1");
map.put("property.value", "image/png");
builder = resourceResolver.adaptTo(QueryBuilder.class);
//INvoke the Search query
Query query = builder.createQuery(PredicateGroup.create(map), session);
SearchResult sr = query.getResult();
//write out to the AEM Log file
log.info("Search Results: " + sr.getTotalMatches());
//Create a MAP to store results
Map<String, InputStream> dataMap = new HashMap<String, InputStream>();
// iterating over the results
for (Hit hit : sr.getHits()) {
//Convert the HIT to an asset - each asset will be placed into a ZIP for downloading
String path = hit.getPath();
Resource rs = resourceResolver.getResource(path);
Asset asset = rs.adaptTo(Asset.class);
//We have the File Name and the inputstream
InputStream data = asset.getOriginal().getStream();
String name = asset.getName();
}
}
我的代码无法正常工作。