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 realizar con una llamada mediante URL. cURL puede utilizarse para ejecutar estas llamadas de URL y puede ser una herramienta útil para administradores de AEM.
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 los flujos de trabajo de inicio, así como las 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.
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.
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.
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.
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.
Inicio las herramientas para desarrolladores y seleccione la ficha Red. Haga clic en la opción Mantener registro antes de borrar la consola.
Haga clic en Crear en el asistente para Crear página para crear realmente el flujo de trabajo.
Haga clic con el botón derecho en la acción de POST resultante y seleccione Copiar -> Copiar como cURL.
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 de abajo) y agregue el parámetro de autenticación correcto como -u <user>:<password>
.
Ejecute el comando cURL a través de la línea de comandos y vista la respuesta.
Esta es una lista de AEM comandos cURL para tareas administrativas y operativas comunes.
Los siguientes ejemplos suponen que AEM se está ejecutando en localhost
en el puerto 4502
y utiliza al usuario admin
con la contraseña admin
. Los marcadores de posición de comandos adicionales se definen entre paréntesis angulares.
curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls
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>
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
curl -u <user>:<password> -X POST -Fname=<New Name> http://localhost:4502/etc/packages/<Group Name>/<Package Name>.zip/jcr:content/vlt:definition
curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json
curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables
curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=hashimkhan -Frep:password=hashimkhan -Fprofile/gender=male http://localhost:4502/libs/granite/security/post/authorizables
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=testuser -Frep:password=abc123 -Fmembership=contributor http://localhost:4502/libs/granite/security/post/authorizables
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup
Consulte Backup y restauración para obtener más información.
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
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
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
curl -u <user>:<password> "http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json?agent=publish"
http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json?agent=publish
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
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
curl -u <user>:<password> -F "cmd=pause" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
curl -u <user>:<password> -F "cmd=clear" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Consulte Puntuación y distintivos de comunidades para obtener más información.
Consulte Esenciales de puntuación y distintivos para obtener más información.
Consulte MSRP - Proveedor de recursos de Almacenamiento MongoDB para obtener más información.
Consulte Habilitación del CRXDE Lite en AEM para obtener más información.
Consulte Recopilación de elementos no utilizados del almacén de datos para obtener más información.
Consulte Opción en Adobe Analytics y Adobe Target para obtener más información.
Consulte Inicio de sesión único para obtener más información.
Esta es una lista de AEM comandos cURL para la manipulación de contenido.
Los siguientes ejemplos suponen que AEM se está ejecutando en localhost
en el puerto 4502
y utiliza al usuario admin
con la contraseña admin
. Los marcadores de posición de comandos adicionales se definen entre paréntesis angulares.
curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="activate" http://localhost:4502/bin/replicate.json
curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="deactivate" http://localhost:4502/bin/replicate.json
curl -u <user>:<password> -F cmd=activate -F ignoredeactivated=true -F onlymodified=true -F path=/content/geometrixx http://localhost:4502/etc/replication/treeactivation.html
curl -u <user>:<password> -X POST -F cmd="lockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand
curl -u <user>:<password> -X POST -F cmd="unlockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand
curl -u <user>:<password> -F cmd=copyPage -F destParentPath=/path/to/destination/parent -F srcPath=/path/to/source/location http://localhost:4502/bin/wcmcommand
Consulte Interacción con Flujos de trabajo mediante programación para obtener más información.
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
curl -u <user>:<password> -F"*=@test.properties" http://localhost:4502/etc/test
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test
Consulte API HTTP de recursos para obtener más información.