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 本身。