儲存資源提供方概述

簡介

自AEM Communities 6.1起,社群內容(通常稱為使用者產生的內容(UGC))會儲存在由儲存資源提供者(SRP)提供的單一共用商店中。

有數個SRP選項,所有選項都可透過新的AEM Communities介面(SocialResourceProvider API(SRP API))存取UGC,其中包含所有建立、讀取、更新和刪除(CRUD)作業。

所有SCF元件都使用SRP API實現,允許在不瞭解基礎拓撲或UGC位置的情況下開發代碼。

SocialResourceProvider API僅適用於AEM Communities的授權客戶。

注意

自訂元件:對於AEM Communities的授權客戶,SRP API可供自訂元件的開發人員使用,以便存取UGC,而不考慮基礎的拓撲。請參閱SRP和UGC Essentials

另請參閱:

關於儲存庫

若要瞭解SRP,請務必瞭解AEM社群網站中AEM存放庫(OAK)的角色。

Java Content Repository(JCR)此標
準為內容儲存庫定義資料模型和應用程式設計介面(JCR API)。它結合了傳統檔案系統和關係資料庫的特性,並添加了內容應用程式經常需要的一些附加功能。

JCR的一個實作是AEM存放庫OAK。

Apache Jackrabbit Oak(OAK)
OAK是JCR 2.0的實作,此資料儲存系統是專為內容導向應用程式而設計。它是一種面向非結構化和半結構化資料的分層資料庫。 儲存庫不僅儲存面向用戶的內容,還儲存應用程式使用的所有代碼、模板和內部資料。 用於訪問內容的UI是CRXDE Lite

JCR和OAK通常都用來參照AEM存放庫。

在私人作者環境中開發網站內容後,必須複製至公開發佈環境。 這通常通過名為​replication​的操作來完成。 這會在作者/開發人員/管理員的控制下發生。

對於UGC,內容是由註冊網站訪客(社群成員)在公開發佈環境中輸入的。 這是隨機發生的。

為了管理和報告,從私人作者環境存取UGC非常實用。 使用SRP,作者對UGC的存取更加一致,而且不需要執行從發佈到作者的反向複製。

關於SRP

將UGC儲存至共用儲存時,會有單一成員內容例項,在大部分的部署中,這些例項可同時從作者和發佈環境存取。 不論SRP選擇(MSRP、ASRP、JSRP)為何,都必須使用SRP API以程式方式存取。

注意

如需范常式式碼和其他詳細資訊,請參閱SRP和UGC Essentials

請參閱使用SRP存取UGC,以取得編碼時的最佳實務。

ASRP

如果是ASRP,UGC不會儲存在JCR中,而會儲存在Adobe代管和管理的雲端服務中。 儲存在ASRP中的UGC不得使用CRXDE Lite檢視,也不得使用JCR API存取。

請參閱ASRP - Adobe儲存資源提供者

開發人員無法直接存取UGC。

ASRP使用Adobe雲端進行查詢。

MSRP

在MSRP中,UGC不儲存在JCR中,它儲存在MongoDB中。 儲存在MSRP中的UGC不得使用CRXDE Lite檢視,也不得使用JCR API存取。

請參閱MSRP - MongoDB儲存資源提供程式

雖然MSRP可與ASRP相比,但是由於所有AEM伺服器例項都在存取相同的UGC,因此可使用常用工具直接存取儲存在MongoDB中的UGC。

MSRP使用Solr進行查詢。

JSRP

JSRP是用來存取單一AEM例項上所有UGC的預設提供者。 它提供快速體驗AEM Communities 6.1的功能,而不需設定MSRP或ASRP。

請參閱JSRP - JCR儲存資源提供程式

在JSRP的情況下,雖然UGC儲存在JCR中,並可透過CRXDE Lite和JCR API存取,但強烈建議不要使用JCR API,否則未來的變更可能會影響自訂程式碼。

此外,作者和發佈環境的儲存庫不共用。 雖然發佈例項叢集會產生共用發佈儲存庫,但發佈時輸入的UGC在作者上不可見,因此無法從作者管理UGC。 UGC僅會持續存在於輸入UGC的例項的AEM儲存庫(JCR)中。

JSRP使用Oak索引查詢。

關於JCR中的陰影節點

模仿UGC路徑的卷影節點存在於本地儲存庫中,以提供兩種用途:

  1. 訪問控制(ACL)
  2. 非現有資源(NER)

無論SRP實作如何,實際的UGC將*not *在與陰影節點相同的位置顯示。

對於訪問控制(ACL)

某些SRP實施(如ASRP和MSRP)將社區內容儲存在不提供ACL驗證的資料庫中。 卷影節點在本地儲存庫中提供可應用ACL的位置。

使用SRP API,所有SRP選項在所有CRUD操作之前對陰影位置執行相同的檢查。

ACL檢查使用一種實用程式方法,該方法返回適合於檢查應用於資源UGC的權限的路徑。

如需范常式式碼,請參閱SRP和UGC Essentials

對於非現有資源(NER)

有些Communities元件可包含在指令碼中,因此需要Sling可定址節點來支援Communities功能。 含的元件稱為非現有資源(NER)。

卷影節點在儲存庫中提供Sling可定址位置。

注意

由於陰影節點具有多種用途,因此陰影節點的存在表示元件是NER。**

儲存位置

以下是使用社區元件指南Comments元件的卷影節點示例:

  • 元件存在於本地儲存庫中:

    /content/community-components/en/comments/jcr:content/content/includable/comments

  • 相應的卷影節點存在於本地儲存庫中,位於:

    /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

在陰影節點下找不到UGC。

預設行為是在讀或寫引用相關子樹時,在發佈實例上設定卷影節點。

例如,假設部署為MSRP,並含有TarMK發佈群。

member在pub1上發佈UGC(儲存在MongoDB中)時,在pub1的JCR中建立陰影節點。

第一次在pub2上讀取UGC時,如果未設定任何內容,預設行為是建立陰影節點。

如果需要除預設行為以外的其他行為,則必須在作者例項上設定,並轉存至所有發佈例項,這通常是手動程式。

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now