Show Menu
主题×

SRP和UGC Essentials

简介

如果不熟悉存储资源提供商(SRP)及其与用户生成内容(UGC)的关系,请访 问社区内容存储 和存储资源提供商概述
本文档的这一部分提供了一些关于SRP和UGC的基本信息。

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,其中都有开放源码工具。 See Upgrading to AEM Communities 6.3 .
以前,用于访问UGC的实用程序都位于SocialUtils包中,该包已不复存在。
有关替换实用程序,请参 阅SocialUtils重构

访问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
路径resourceToUGCStoragePath()返回 不适 用于 ACL检查

访问ACL的实用方法

某些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
}

resourceToACLPath()返回的路 径不 于访 问UGC本身。