Show Menu
화제×

SRP 및 UGC Essentials

소개

SRP(Storage Resource Provider) 및 UGC(User-Generated Content)와의 관계에 익숙하지 않은 경우 Community Content Storage and Storage Resource Provider Overview를 참조하십시오 .
설명서의 이 섹션에서는 SRP 및 UGC에 대한 몇 가지 필수 정보를 제공합니다.

StorageResourceProvider API

SocialResourceProvider API(SRP API)는 다양한 Sling 리소스 공급자 API의 확장입니다. 여기에는 페이지 매김 및 원자 증분에 대한 지원이 포함됩니다(총계 및 점수 매기기에 유용함).
SCF 구성 요소에는 날짜, 도움말, 투표 수 등을 기준으로 정렬해야 하므로 쿼리가 필요합니다. 모든 SRP 옵션에는 버킷에 의존하지 않는 유연한 쿼리 메커니즘이 있습니다.
SRP 스토리지 위치에는 구성 요소 경로가 통합되어 있습니다. 루트 경로는 ASRP, MSRP 또는 JSRP와 같이 선택한 SRP 옵션에 따라 다르므로 SRP API는 항상 UGC에 액세스하는 데 사용해야 합니다.
SRP API 파섹 새 릴리스로 업그레이드할 때 향후 내부 구현에 대한 개선 사항의 혜택은 누락되므로 사용자 지정 구현을 가볍게 수행해서는 안 됩니다.
SRP API를 사용하는 방법은 SocialResourceUtilities 패키지에 있는 유틸리티와 같이 제공된 유틸리티를 통해 제공됩니다.
AEM 6.0 이전 버전에서 업그레이드할 때 오픈 소스 도구를 사용할 수 있는 모든 SRP에 대해 UGC를 마이그레이션해야 합니다. See Upgrading to AEM Communities 6.3 .
이전에는 UGC에 액세스하기 위한 유틸리티가 더 이상 존재하지 않는 SocialUtils 패키지에서 발견되었습니다.
대체 유틸리티에 대해서는 SocialUtils 리팩토링을 참조하십시오 .

UGC에 액세스하는 유틸리티 메서드

UGC에 액세스하려면 SRP에서 UGC에 액세스하는 데 적합한 경로를 반환하는 SocialResourceUtilities 패키지의 메서드를 사용하고 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 리팩토링을 참조하십시오 .
resourceToUGCStoragePath() 반환 경로는 *ACL 확인에 적합하지 않습니다 .

ACL에 액세스하는 유틸리티 메서드

ASRP 및 MSRP와 같은 일부 SRP 구현은 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()가 반환하는 경로는 *UGC 자체에 액세스하는 데 적합하지 않습니다 .