SRP和UGC要點 srp-and-ugc-essentials

CAUTION
AEM 6.4已結束延伸支援,本檔案不再更新。 如需詳細資訊,請參閱 技術支援期. 尋找支援的版本 此處.

簡介 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選項都使用SRP API,在所有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開發時,下列儲存位置說明可能有所幫助。 目前沒有UI可存取儲存在ASRP中的UGC,因為JSRP(CRXDE Lite)和MSRP(MongoDB工具)。

元件位置

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

此類元件的範例為 註解元件 存在於 社群元件指南 頁簽。 本地儲存庫中注釋節點的路徑是:

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

陰影節點位置

UGC的建立也會建立 陰影節點 ACL的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/included/comments/srzd-let_it_be_

注意,對於JSRP,UGC節點將 僅限 存在於輸入的AEM例項(製作或發佈)上。 如果在發佈例項上輸入,則無法從作者上的協調控制台進行協調。

相關資訊 related-information

recommendation-more-help
5d37d7b0-a330-461b-814d-068612705ff6