当前位置: 首页 > 知识库问答 >
问题:

如何在AEM中获取集合中的所有资产?

强才捷
2023-03-14

我试图在AEM中获得集合中的所有资产,给定集合的路径。

假设集合的路径是/content/dam/collections/public/-/-XZMzZlhkJKIa7-Mg15h/testing

我需要把这个收藏里的所有资产。

我在content/dam/collections下进行了检查,资产未存储在此位置下

我甚至尝试在AEM的query builder中编写一个查询,给出类型:dam:asset和路径:“集合的位置”

我得不到任何结果。

我只需要在Java或QueryBuilder中获得集合下的所有资产

共有2个答案

岳志义
2023-03-14

资源集合API将用于检索集合中的资产。

下面的代码应该适合您。

Resource resource = resourceResolver
            .getResource("/content/dam/collections/k/kXjI0j44sW4pq2mWc9fE/public collections");
    if (null != resource) {
        log.debug("resource path is {}", resource.getPath());
        ResourceCollection resourceCollection = resource.adaptTo(ResourceCollection.class);
        if (null != resourceCollection) {
            Iterator<Resource> resourceIterator = resourceCollection.getResources();
            while (resourceIterator.hasNext()) {
                Resource damResource = resourceIterator.next();
                log.debug("damResource path is {}", damResource.getPath());
                imagePaths.add(damResource.getPath());
            }
        }
    }

有关模型类和示例组件,请参阅下面的链接

https://github.com/sudheerdvn/aem-flash/blob/develop/core/src/main/java/com/flash/aem/core/models/ReadCollectionAssets.java

https://github.com/sudheerdvn/aem-flash/tree/develop/ui.apps/src/main/content/jcr_root/apps/aem-flash/components/content/read-collection-assets

澹台华翰
2023-03-14

将资产存储在集合中是一个坏主意,因为资产可以是多个集合的一部分。就像在播放列表中一样,资产只在集合中引用。

每个集合都有一个子节点“sling:成员”。这个子节点有一个(多值)属性sling:资源,它保存对该集合成员中每个资产的引用。除此之外,sling:成员还为每个资产有一个属性sling:资源和通往资产的路径,子节点类型nt:非结构化。

因此,您可以迭代属性值或子节点,以获取对资源的引用,然后在其原始位置访问它们。

 类似资料:
  • 我现在有一个firestore,看起来像这样: 我使用的是,我试图获取“报告”集合中的所有文档。 我可以得到一个报告: 但我无法得到整个子集合 这可能吗?我是新手,所以这可能是一个愚蠢的问题。 谢谢 编辑控制台中收到的错误消息是: 我不确定权限,我没有访问权限,但如果是权限问题,我很困惑,我可以从集合中获取一个文档,但找不到获取所有文档的方法

  • 问题内容: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 是否有用于获取数据库中所有集合的命令?其他数据类型(哈希,列表,排序集)又如何呢? http://redis.io/topics/data-types 问题答案: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 不管您的密钥是哪种数据类

  • 我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新

  • 嗨,我从javascript和react-native开始,我花了几个小时试图解决这个问题。有人能告诉我如何从firestore收集处获得所有文件吗? 我一直在尝试这个: 日志1打印所有对象(一个接一个),但日志2没有定义,为什么?

  • 如何使用AEM查询查找内容页中使用的DAM中所有图像的列表。 我们在DAM中有很多图片,但并不是所有的都在页面上使用。我尝试了一些基本的(Xpath、SQL2),但没有成功。任何帮助都会很好。 提前谢谢你,贝因霍夫

  • 我一直在努力获取firestore收藏中所有文档的列表。我想显示集合中所有文档的所有详细信息。我的文档树如下- '组'集合----- 现在,我想获取特定groupID的“任务”集合中的所有文档及其详细信息。 我尝试了这个方法,但它不起作用,因为“没有为“CollectionReference”类型定义“get”方法。”请问怎么绕过这个?