SRP和UGC Essentials srp-and-ugc-essentials

简介 introduction

如果不熟悉存储资源提供程序(SRP)及其与用户生成内容(UGC)的关系,请访问 社区内容存储存储资源提供程序概述.

此文档的此部分提供了有关SRP和UGC的一些基本信息。

StorageResourceProvider API storageresourceprovider-api

SocialResourceProvider API (SRP API)是各种Sling资源提供程序API的扩展。 它包括支持分页和原子增量(用于计数和评分)。

SCF组件需要查询,因为需要按日期、实用性、票数等排序。 所有SRP选项都有灵活的查询机制,不依赖于分段。

SRP存储位置包含组件路径。 SRP API应始终用于访问UGC,因为根路径取决于所选的SRP选项,如ASRP、MSRP或JSRP。

SRP API不是抽象类,它是一个接口。 不应轻率地执行自定义实施,因为升级到新版本时将错过未来对内部实施改进的好处。

使用SRP API的方法是通过提供的实用程序,例如SocialResourceUtilities包中的实用程序。

从AEM 6.0或更低版本升级时,需要为具有开源工具的所有SRP迁移UGC。 请参阅 升级到AEM Communities 6.3.

NOTE
过去,用于访问UGC的实用程序位于SocialUtils包中,该包不再存在。
有关替换实用程序,请参阅 SocialUtils重构.

访问UGC的实用程序方法 utility-method-to-access-ugc

要访问UGC,请使用SocialResourceUtilities包中的方法,该方法返回适用于从SRP访问UGC的路径,并替换在SocialUtils包中找到的已弃用方法。

以下是在servlet中使用resourceToUGCStoragePath()方法的最小示例:

import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String ugcPath = socialResourceUtilities.resourceToUGCStoragePath(request.getResource());
  // rest of servlet
}

有关其他SocialUtils替换,请参阅 SocialUtils重构.

有关编码准则,请访问 使用SRP访问UGC.

CAUTION
resourceToUGCStoragePath()返回的路径为 适合 ACL检查.

访问ACL的实用程序方法 utility-method-to-access-acls

有些SRP实现,如ASRP和MSRP,将社区内容存储在未提供ACL验证的数据库中。 影子节点提供本地存储库中可以应用ACL的位置。

使用SRP API,所有SRP选项在所有CRUD操作之前对影子位置执行相同的检查。

要检查ACL,请使用返回适合检查应用于资源UGC的权限的路径的方法。

以下是在servlet中使用resourceToACLPath()方法的简单示例:

import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String aclPath = socialResourceUtilities.resourceToACLPath(request.getResource());
  // rest of servlet
}
CAUTION
resourceToACLPath()返回的路径为 适合 访问UGC 本身。

以下对存储位置的说明在使用JSRP或MSRP进行开发时可能会有所帮助。 与JSRP一样,当前没有用于访问ASRP中存储的UGC的UI(CRXDE Lite)和MSRP (MongoDB工具)。

组件位置

当成员在发布环境中进入UGC时,他们作为AEM站点的一部分与组件交互。

以下是此类组件的示例 注释组件 中存在于 社区组件指南 站点。 本地存储库中注释节点的路径为:

  • 组件路径= /content/community-components/en/comments/jcr:content/content/includable/comments

影子节点位置

创建UGC还会创建 影子节点 应用必要的ACL。 本地存储库中相应影子节点的路径是预置影子节点根路径到组件路径的结果:

  • 根路径= /content/usergenerated
  • 评论影子节点= /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

UGC位置

UGC不会在这两个位置中创建,因此只能使用 效用法 调用SRP API。

  • 根路径= /content/usergenerated/asi/srp-choice
  • JSRP的UGC节点= /content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_

注意,对于JSRP,UGC节点将 仅限 出现在输入它的AEM实例上(创作或发布)。 如果在发布实例中输入,则无法从“创作”的审核控制台中进行审核。

相关信息 related-information

recommendation-more-help
81e2cd9d-0789-409d-b87c-2a8ce4f28791