SRP と UGC の基本事項

注意

AEM 6.4 の拡張サポートは終了し、このドキュメントは更新されなくなりました。 詳細は、 技術サポート期間. サポートされているバージョンを見つける ここ.

はじめに

ストレージリソースプロバイダー (SRP) とユーザー生成コンテンツ (UGC) との関係に慣れていない場合は、にアクセスします。 コミュニティコンテンツストレージ および ストレージリソースプロバイダの概要.

この節では、SRP と UGC に関する重要な情報を提供します。

StorageResourceProvider API

SocialResourceProvider API(SRP API) は、様々な Sling リソースプロバイダー API の拡張です。 ページネーションとアトミックな増分のサポートが含まれます(集計とスコアリングに役立ちます)。

日付、有用性、投票数などで並べ替える必要があるので、SCF コンポーネントにはクエリが必要です。 すべての SRP オプションには、バケット化に依存しない柔軟なクエリメカニズムがあります。

SRP ストレージの場所には、コンポーネントのパスが組み込まれます。 SRP API は常に UGC にアクセスするために使用する必要があります。ルートパスは、ASRP、MSRP、JSRP など、選択した SRP オプションに応じて異なるからです。

SRP API は抽象クラスではなく、インターフェイスです。 新しいリリースにアップグレードする際に、内部実装に対する今後の改善のメリットが失われるので、カスタム実装を軽くおこなわないでください。

SRP API を使用する手段は、 SocialResourceUtilities パッケージに含まれるユーティリティなど、提供されているユーティリティを通じて提供されます。

AEM 6.0 以前からアップグレードする場合は、オープンソースツールを使用できるすべての SRP に対して UGC を移行する必要があります。 詳しくは、 AEM Communities 6.3 へのアップグレード.

メモ

以前は、UGC にアクセスするユーティリティは SocialUtils パッケージに含まれていましたが、これはもはや存在していませんでした。

置換ユーティリティについては、 SocialUtils リファクタリング.

UGC にアクセスするためのユーティリティメソッド

UGC にアクセスするには、 SocialResourceUtilities パッケージのメソッドを使用します。このメソッドは、SRP から UGC にアクセスするのに適したパスを返し、 SocialUtils パッケージにある廃止されたメソッドを置き換えます。

次に、サーブレットで 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 にアクセスするためのユーティリティメソッド

ASRP や MSRP などの一部の SRP 実装では、ACL 検証を提供しないデータベースにコミュニティコンテンツを格納します。 シャドウノードは、ACL を適用できるローカルリポジトリ内の場所を提供します。

SRP API を使用すると、すべての SRP オプションで、すべての CRUD 操作の前に、シャドウの場所が同じにチェックされます。

ACL を確認するには、リソースの UGC に適用される権限の確認に適したパスを返すメソッドを使用します。

次に、サーブレットで 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 へのアクセス それ自体。

JSRP または MSRP を使用して開発する場合は、ストレージの場所に関する次の説明が役立つ場合があります。 JSRP (CRXDE Lite) および MSRP(MongoDB ツール)

コンポーネントの場所

メンバーがパブリッシュ環境で UGC に入ると、メンバーはAEMサイトの一部としてコンポーネントとやり取りします。

このようなコンポーネントの例として、 コメントコンポーネントコミュニティコンポーネントガイド サイト。 ローカルリポジトリ内のコメントノードへのパスは次のとおりです。

  • コンポーネントパス= /content/community-components/en/comments/jcr:content/content/includable/comments

シャドウノードの場所

UGC を作成すると、 シャドウノード 必要な ACL が適用される ローカルリポジトリ内の対応するシャドウノードへのパスは、シャドウノードのルートパスの前にコンポーネントパスを指定した結果です。

  • ルートパス= /content/usergenerated
  • コメントのシャドウノード= /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/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インスタンス(オーサーまたはパブリッシュ)上に存在する。 パブリッシュインスタンスで入力した場合、作成者のモデレートコンソールからモデレートを実行することはできません。

このページ