Show Menu
主題×

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重構

訪問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 *不適 合存取UGC