将 xml 文件上传到 AEM DAM

Uploading a xml file into the AEM DAM

我想将 xml 文件上传到 AEM DAM。 xml 文件是我使用 InputStream 读取的 sitemap.xml。但是我该如何编写 ResourceResolver 呢? ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null) 现在已弃用。我正在学习本教程,但面临这个资源解析器问题。正确的语法是什么?

出于安全原因,resolverFactory.getAdministrativeResourceResolver() 方法已弃用。这给了你一个没有任何权限检查的管理会话。

被resolverFactory.getServiceResourceResolver()代替。这为您提供了与预配置用户的正常会话。要配置它,请转到管理控制台(例如 http://localhost:4502/system/console/configMgr )并找到 Apache Sling Service User Mapper Service 的设置。

对于您的教程来说,这很公平,只需将您的 Bundle 的管理员用户用作服务用户即可。

另请查看有关此问题的 Adob​​e 文档:https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/security-service-users.html

您现在可以使用 org.apache.sling.api.resource.ResourceResolverFactoryresourceFactory.getServiceResourceResolver(paramMap) 方法。

ResourceResolver resourceResolver = null;
    try {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put(ResourceResolverFactory.SUBSERVICE, "writeService");
        resourceResolver = resourceFactory.getServiceResourceResolver(paramMap);
    } catch (LoginException e) {
        log.error("Login Exception : " + e);
    }

此外,在Apache Sling Service User Mapper Service中将Felix config manager中的子服务配置为

<bundle Symbolic Name>:<sub-service name>=<system-user-name>

您还需要使用 CRX Explorer 创建系统用户并单击 用户管理 并授予相对路径的权限。