1

我需要从 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();

        }
    }

我的代码无法正常工作。

4

1 回答 1

1

有几种方法可以在 AEM 中搜索过期资产。

选项 1:如果仅出于查看目的,您可以使用 AEM 控制台中的 AEM 搜索

  • 输入您要检查过期资产的 DAM 文件夹路径(或将其留空以搜索整个存储库)
  • 选择文件类型为“图像”(或留空以搜索所有资产)
  • 选中“状态”过滤器下的“过期”复选框

    上面的过滤器应该会显示所有过期的资产

选项 2:查询以检索过期资产

过期日期将作为“prism:expirationDate”存储在元数据节点中

您可以在查询中使用以下属性集来获取结果。

path=/content/dam/<site>
type=dam:Asset
property=@jcr:content/metadata/prism:expirationDate
property.operation=exists
于 2019-08-19T22:01:39.667 回答