SRP和UGC Essentials

簡介

如果不熟悉儲存資源提供商(SRP)及其與用戶生成內容(UGC)的關係,請訪問社區內容儲存儲存資源提供商概述

本文檔的這一部分提供了有關SRP和UGC的一些基本資訊。

StorageResourceProvider API

SocialResourceProvider API(SRP API)是各種Sling Resource Provider API的擴充功能。 它包含分頁和原子增量支援(對計分和計分很有用)。

SCF元件需要查詢,因為需要按日期、幫助、票數等進行排序。 所有SRP選項都具有不依賴分組的靈活查詢機制。

SRP儲存位置併入了元件路徑。 SRP API應一律用於存取UGC,因為根路徑取決於所選SRP選項,例如ASRP、MSRP或JSRP。

SRP API不是抽象類,它是介面。 自訂實作不應輕易進行,因為升級至新版本時,將來對內部實作的改善會錯失良機。

使用SRP API的方式是透過提供的公用程式,例如SocialResourceUtilities套件中的公用程式。

從AEM 6.0或更舊版本升級時,必須移轉所有SRP的UGC,而Open Source工具可供使用。 請參閱升級至AEM Communities 6.3

注意

過去,SocialUtils套件中會找到用於存取UGC的公用程式,而SocialUtils套件已不再存在。

如需取代公用程式,請參閱SocialUtils Reforcating

訪問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()是*not *適合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()傳回的路徑是*not *not appliated for accessing the UGC本身。

以下儲存位置說明在使用JSRP或MSRP進行開發時可能會有幫助。 目前沒有UI可存取儲存在ASRP中的UGC,因為JSRP(CRXDE Lite)和MSRP(MongoDB工具)有UGC。

元件位置

當成員在發佈環境中輸入UGC時,他們會與AEM網站的元件互動。

此類元件的示例是注釋元件,它存在於社區元件指南站點中。 本地儲存庫中注釋節點的路徑為:

  • 元件路徑= /content/community-components/en/comments/jcr:content/content/included/comments

陰影節點位置

建立UGC還會建立卷影節點,以應用所需的ACL。 到本地儲存庫中相應卷影節點的路徑是在元件路徑中預先放置卷影節點根路徑的結果:

  • 根路徑= /content/usergenerated
  • 注釋陰影節點= /content/usergenerated/content/community-components/en/comments/jcr:content/content/include/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例項的AEM例項(作者或發佈)上。如果在發佈例項上輸入,則無法從作者的協調控制台進行協調。

本頁內容