Show Menu
TEMAS×

Elementos esenciales de SRP y UGC

Introducción

Si no está familiarizado con el proveedor de recursos de almacenamiento (SRP) y su relación con el contenido generado por el usuario (UGC), visite Información general sobre el proveedor de recursos de almacenamiento y almacenamiento de contenido de la comunidad .
En esta sección de la documentación se proporciona información esencial sobre SRP y UGC.

API de StorageResourceProvider

La API de SocialResourceProvider (SRP API) es una extensión de varias API de proveedores de recursos de Sling. Incluye soporte para paginación e incremento atómico (útil para contar y anotar).
Las consultas son necesarias para los componentes de SCF, ya que es necesario ordenar por fecha, utilidad, número de votos, etc. Todas las opciones de SRP tienen mecanismos de consulta flexibles que no dependen del agrupamiento.
La ubicación de almacenamiento SRP incorpora la ruta del componente. La API de SRP siempre debe utilizarse para acceder a UGC, ya que la ruta de acceso raíz depende de la opción de SRP seleccionada, como ASRP, MSRP o JSRP.
La API de SRP no es una clase abstracta, es una interfaz. Una implementación personalizada no debería realizarse a la ligera, ya que las ventajas de futuras mejoras en las implementaciones internas se perderían al actualizar a una nueva versión.
Los medios para utilizar la API de SRP son a través de las utilidades proporcionadas, como las que se encuentran en el paquete SocialResourceUtilities.
Al actualizar desde AEM 6.0 o anterior, será necesario migrar UGC para todos los SRP, para los que hay una herramienta de código abierto disponible. See Upgrading to AEM Communities 6.3 .
Históricamente, las utilidades para acceder a UGC se encontraban en el paquete SocialUtils, que ya no existe.
Para ver las utilidades de reemplazo, consulte Refactorización de SocialUtils .

Método de utilidad para acceder a UGC

Para acceder a UGC, utilice un método del paquete SocialResourceUtilities que devuelve una ruta adecuada para acceder a UGC desde SRP y reemplace el método obsoleto que se encuentra en el paquete SocialUtils.
A continuación se muestra un ejemplo mínimo de uso del método resourceToUGCStoragePath() en un servlet:
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
}

Para otras sustituciones de SocialUtils, consulte Refactorización de SocialUtils .
Para obtener instrucciones de codificación, visite Acceso a UGC con SRP .
El path resourceToUGCStoragePath() devuelve *no es *adecuado para la comprobación Para control de acceso (ACL) ACL.

Método de utilidad para acceder a las ACL

Algunas implementaciones de SRP, como ASRP y MSRP, almacenan contenido comunitario en bases de datos que no proporcionan verificación de ACL. Los nodos de sombra proporcionan una ubicación en el repositorio local a la que se pueden aplicar las ACL.
Mediante la API de SRP, todas las opciones de SRP realizan la misma comprobación de la ubicación de sombra antes de todas las operaciones de CRUD.
Para comprobar las ACL, utilice un método que devuelva una ruta adecuada para comprobar los permisos aplicados al UGC del recurso.
A continuación se muestra un ejemplo sencillo de uso del método resourceToACLPath() en un servlet:
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
}

La ruta devuelta por resourceToACLPath() *no es *adecuada para acceder al UGC mismo.