Uso de cURL con AEM

Los administradores generalmente necesitan automatizar o simplificar tareas comunes dentro de cualquier sistema. En AEM, por ejemplo, administrar usuarios, instalar paquetes y administrar paquetes OSGi son tareas que se deben realizar con frecuencia.

Debido a la naturaleza RESTful del marco de trabajo de Sling en el que se genera el AEM, la mayoría de las tareas se pueden reducir a una llamada de URL. cURL puede utilizarse para ejecutar estas llamadas de URL y puede ser una herramienta útil para administradores de AEM.

Qué es cURL

cURL es una herramienta de línea de comandos de código abierto que se utiliza para realizar manipulaciones de URL. Admite una amplia gama de protocolos de Internet, incluidos HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP y RTSP.

cURL es una herramienta bien establecida y ampliamente utilizada para obtener o enviar datos usando la sintaxis de la dirección URL y fue lanzada originalmente en 1997. El nombre cURL originalmente significaba "ver URL".

Debido a la naturaleza RESTful del marco de trabajo de Sling en el que se genera el AEM, la mayoría de las tareas se pueden reducir a una llamada de URL, que se puede ejecutar con cURL. Las tareas de manipulación de contenido, como la activación de páginas y flujos de trabajo de inicio, así como tareas operativas como la administración de paquetes y la administración de usuarios, se pueden automatizar mediante cURL. Además, puede crear sus propios comandos cURL para la mayoría de las tareas de AEM.

Nota

Cualquier comando de AEM ejecutado mediante cURL debe estar autorizado como cualquier usuario para AEM. Se respetan todas las ACL y los derechos de acceso al utilizar cURL para ejecutar un comando AEM.

Descarga de cURL

cURL es una parte estándar de macOS y algunas distribuciones Linux. Sin embargo, está disponible para la mayoría de los sistemas operativos. Las últimas descargas se encuentran en https://curl.haxx.se/download.html.

El repositorio de origen de cURL también se encuentra en GitHub.

Creación de un comando de AEM listo para cURL

Los comandos cURL se pueden crear para la mayoría de las operaciones de AEM, como activar flujos de trabajo, comprobar configuraciones OSGi, activar comandos JMX, crear agentes de replicación y mucho más.

Para encontrar el comando exacto que necesita para una operación concreta, debe utilizar las herramientas de desarrollador del explorador para capturar la llamada del POST al servidor cuando ejecute el comando AEM.

Los pasos siguientes describen cómo hacerlo mediante la creación de una nueva página en el navegador Chrome como ejemplo.

  1. Prepare la acción que desee invocar dentro de AEM. En este caso, hemos llegado al final del asistente Crear página , pero aún no hemos hecho clic en Crear.

    chlimage_1-66

  2. Inicio las herramientas de desarrollo y seleccione la ficha Red . Haga clic en la opción Mantener registro antes de borrar la consola.

    chlimage_1-67

  3. Haga clic en Crear en el asistente Crear página para crear el flujo de trabajo.

  4. Haga clic con el botón derecho en la acción de POST resultante y seleccione Copiar -> Copiar como cURL.

    chlimage_1-68

  5. Copie el comando cURL en un editor de texto y elimine todos los encabezados del comando, que inicio con -H (resaltado en azul en la imagen siguiente) y agregue el parámetro de autenticación adecuado como, por ejemplo, -u <user>:<password>.

    chlimage_1-69

  6. Ejecute el comando cURL a través de la línea de comandos y vista la respuesta.

    chlimage_1-78

Comandos comunes de cURL de AEM operativo

Esta es una lista de AEM comandos cURL para tareas administrativas y operativas comunes.

Nota

En los siguientes ejemplos se asume que AEM se está ejecutando localhost en el puerto 4502 y utiliza al usuario admin con contraseña admin. Los marcadores de posición de comandos adicionales se definen entre paréntesis angulares.

Administración de paquetes

Lista de todos los paquetes instalados

curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls

Create a Package

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=create -d packageName=<name> -d groupName=<name>

Previsualización de un paquete

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview

Contenido del paquete de Lista

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents

Generar un paquete

curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build

Volver a ajustar un paquete

curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap

Cambiar el nombre de un paquete

curl -u <user>:<password> -X POST -Fname=<New Name> http://localhost:4502/etc/packages/<Group Name>/<Package Name>.zip/jcr:content/vlt:definition

Cargar un paquete

curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json

Instalar un paquete

curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

Desinstalar un paquete

curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

Eliminar un paquete

curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip

Descargar un paquete

curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip

Administración de usuarios

Create a New User

curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables

Create a New Group

curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables

Añadir una propiedad a un usuario existente

curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html

Crear un usuario con un Perfil

curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=hashimkhan -Frep:password=hashimkhan -Fprofile/gender=male http://localhost:4502/libs/granite/security/post/authorizables

Crear un nuevo usuario como miembro de un grupo

curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=testuser -Frep:password=abc123 -Fmembership=contributor http://localhost:4502/libs/granite/security/post/authorizables

Añadir un usuario a un grupo

curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html

Eliminar un usuario de un grupo

curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html

Configurar la pertenencia a un grupo de usuarios

curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html

Eliminar un usuario

curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser


Eliminar un grupo

curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup

Copia de seguridad

Consulte Copia de seguridad y restauración para obtener más información.

los paquetes

Inicio de un paquete

curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>

Detención de un paquete

curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>

Dispatcher

Invalidar la caché

curl -H "CQ-Action: Activate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache

Desalojo de la caché

curl -H "CQ-Action: Deactivate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache

Agente de replicación

Comprobar el estado de un agente

curl -u <user>:<password> "http://localhost:4502/etc/replication/agents.author/publish/jcr:conten t.queue.json?agent=publish"
http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on?agent=publish

Eliminar un agente

curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>

Crear un agente

curl -u <user>:<password> -F "jcr:primaryType=cq:Page" -F "jcr:content/jcr:title=new-replication" -F "jcr:content/sling:resourceType=/libs/cq/replication/components/agent" -F "jcr:content/template=/libs/cq/replication/templates/agent" -F "jcr:content/transportUri=http://localhost:4503/bin/receive?sling:authRequestLogin=1" -F "jcr:content/transportUser=admin" -F "jcr:content/transportPassword={DES}8aadb625ced91ac483390ebc10640cdf"http://localhost:4502/etc/replication/agents.author/replication99

Pausar un agente

curl -u <user>:<password> -F "cmd=pause" -F "name=publish"  http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on

Borrar una cola de agente

curl -u <user>:<password> -F "cmd=clear" -F "name=publish"  http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.js on

Communities

Asignar y revocar distintivos

Consulte Puntuación y distintivos de comunidades para obtener más información.

Consulte Puntuación y distintivos esenciales para obtener más información.

Reindexación del MSRP

Consulte MSRP - Proveedor de recursos de Almacenamiento MongoDB para obtener más información.

Seguridad

Activación y desactivación de CRX DE Lite

Consulte Activación de CRXDE Lite en AEM para obtener más información.

Recolección de papelera del almacén de datos

Consulte Recopilación de elementos no utilizados del almacén de datos para obtener más información.

Integración de Analytics y Destinatario

Consulte Opción en Adobe Analytics y Adobe Target para obtener más información.

Inicio de sesión único

Enviar encabezado de prueba

Consulte Inicio de sesión único para obtener más información.

Comandos cURL de Manipulación de contenido común AEM

Esta es una lista de AEM comandos cURL para la manipulación de contenido.

Nota

En los siguientes ejemplos se asume que AEM se está ejecutando localhost en el puerto 4502 y utiliza al usuario admin con contraseña admin. Los marcadores de posición de comandos adicionales se definen entre paréntesis angulares.

Administración de páginas

Activación de página

curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="activate" http://localhost:4502/bin/replicate.json

Desactivación de página

curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="deactivate" http://localhost:4502/bin/replicate.json

Activación de árbol

curl -u <user>:<password> -F cmd=activate -F ignoredeactivated=true -F onlymodified=true -F path=/content/geometrixx http://localhost:4502/etc/replication/treeactivation.html

Bloquear página

curl -u <user>:<password> -X POST -F cmd="lockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand

Desbloquear página

curl -u <user>:<password> -X POST -F cmd="unlockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand

Copiar página

curl -u <user>:<password> -F cmd=copyPage -F destParentPath=/path/to/destination/parent -F srcPath=/path/to/source/location http://localhost:4502/bin/wcmcommand

Flujos de trabajo

Consulte Interacción con Flujos de trabajo mediante programación para obtener más información.

Contenido de Sling

Create a Folder

curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test

Eliminar un nodo

curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties

Mover un nodo

curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl"  -F":dest=/target/parenturl/" https://localhost:4502/content

Copiar un nodo

curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl"  -F":dest=/target/parenturl/" https://localhost:4502/content

Carga de archivos con Sling PostServlet

curl -u <user>:<password> -F"*=@test.properties"  http://localhost:4502/etc/test

Carga de archivos con Sling PostServlet y especificación del nombre del nodo

curl -u <user>:<password> -F"test2.properties=@test.properties"  http://localhost:4502/etc/test

Cargar archivos que especifican un tipo de contenido

curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test

Manipulación de recursos

Consulte API HTTP de Assets para obtener más información.

En esta página