Uso de cURL con AEM using-curl-with-aem
Los administradores a menudo necesitan automatizar o simplificar tareas comunes dentro de cualquier sistema. En AEM, por ejemplo, la administración de usuarios, la instalación de paquetes y la administración de 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 crea AEM, la mayoría de las tareas se pueden realizar con una llamada de URL. cURL puede utilizarse para ejecutar dichas llamadas de URL y puede ser una herramienta útil para los administradores de AEM.
Qué es cURL what-is-curl
cURL es un herramienta de línea de comandos de código abierto que se utiliza para realizar manipulaciones URL. Es compatible con 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 utilizando la sintaxis URL y se lanzó originalmente en 1997. El nombre cURL originalmente significaba "ver URL".
Debido a la naturaleza RESTful del marco de trabajo Sling sobre el que se construye AEM, la mayoría de las tareas se pueden reducir a una llamada URL, que se puede ejecutar con cURL. Las tareas de manipulación de contenido, como la activación de páginas y el inicio de tareas🔗 flujos de trabajo y 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.
Descargando cURL downloading-curl
cURL es una parte estándar de macOS y algunas distribuciones de Linux. Sin embargo, está disponible para la mayoría de los sistemas operativos. Las últimas descargas se pueden encontrar en https://curl.haxx.se/download.html.
La repositorio de origen de cURL también se puede encontrar en GitHub.
Creación de una AEM lista para cURL Comando building-a-curl-ready-aem-command
Los comandos cURL se pueden crear para la mayoría de las operaciones en AEM como desencadenar flujos de trabajo, verificar configuraciones OSGi, desencadenar comandos JMX, crear agentes de replicación y mucho más.
Para encontrar el comando exacto que necesita para su operación particular, debe usar las herramientas de desarrollo de su explorador para capturar la llamada de POST al servidor cuando ejecuta el comando AEM.
En los pasos siguientes se describe cómo hacerlo utilizando la creación de una nueva página en el explorador Chrome como ejemplo.
-
Prepare la acción que desee invocar en AEM. En este caso, hemos seguido hasta el final del asistente para Crear página, pero aún no hemos hecho clic en Crear.
-
Inicie las herramientas para desarrolladores y seleccione la ficha Red. Haga clic en la opción Conservar registro antes de borrar la consola.
-
Haga clic en Crear en el asistente para Crear página para crear el flujo de trabajo.
-
Haga clic con el botón derecho en la acción POST resultante y seleccione Copiar > Copiar como cURL.
-
Copie el comando cURL en un editor de texto y quite todos los encabezados del comando, que comienzan por
-H
(resaltado en azul en la imagen siguiente) y agregue el parámetro de autenticación adecuado como-u <user>:<password>
. -
Ejecute el comando cURL a través de la línea de comandos y vea la respuesta.
Comandos cURL operativos comunes de AEM common-operational-aem-curl-commands
Esta es una lista de comandos cURL de AEM para tareas administrativas y operativas comunes.
localhost
en el puerto 4502
y utiliza el usuario admin
con la contraseña admin
. Los marcadores de posición de comandos adicionales se establecen entre corchetes angulares.Administración de paquetes package-management
Mostrar todos los paquetes instalados
curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls
Crear un paquete 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 preview-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
Contenido del paquete de lista list-package-content
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents
Creación de un paquete build-a-package
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
Volver a empaquetar un paquete rewrap-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
Cambiar nombre un paquete rename-a-package
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 upload-a-package
curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json
Instalación de un paquete install-a-package
curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Desinstalar un paquete uninstall-a-package
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Eliminar un paquete delete-a-package
curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Descargar un paquete download-a-package
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
Replicar un paquete replicate-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip?cmd=replicate
Administración de usuarios user-management
Crear un nuevo usuario create-a-new-user
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
Crear un grupo nuevo 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 add-a-property-to-an-existing-user
curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html
Crear un usuario con un perfil create-a-user-with-a-profile
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 create-a-new-user-as-a-member-of-a-group
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 add-a-user-to-a-group
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Eliminar un usuario de un grupo remove-a-user-from-a-group
curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Establecer la pertenencia a grupo de un usuario set-a-user-s-group-membership
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
Eliminar usuario delete-a-user
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
Eliminar un grupo delete-a-group
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup
Copia de seguridad backup
Consulte Copia de seguridad y restauración para obtener más información.
OSGi osgi
Inicio de un paquete starting-a-bundle
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
Detener un paquete stopping-a-bundle
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
Dispatcher dispatcher
Invalidar la caché invalidate-the-cache
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
Desalojar la caché evict-the-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
Agente de replicación replication-agent
Comprobar la Estado de un agente check-the-status-of-an-agent
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
Eliminar un agente delete-an-agent
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
Crear un agente create-an-agent
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
Poner en pausa a un agente pause-an-agent
curl -u <user>:<password> -F "cmd=pause" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Borrar una cola de agentes clear-an-agent-queue
curl -u <user>:<password> -F "cmd=clear" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Comunidades communities
Asignar y revocar distintivos assign-and-revoke-badges
Consulte Communities Puntuación e insignias para obtener más información.
Consulte Conceptos básicos de puntuación e insignias para obtener más información.
Reindexación del MSRP msrp-reindexing
Consulte MSRP - Proveedor de recursos de almacenamiento de MongoDB para obtener detalles.
Seguridad security
Activación y desactivación de CRX DE Lite enabling-and-disabling-crx-de-lite
Consulte Habilitar CRXDE Lite en AEM para obtener más información.
Recopilación de datos almacenados desechables data-store-garbage-collection
Consulte Recopilación de residuos del almacén de datos para obtener más información.
Integración de Analytics y Target analytics-and-target-integration
Consulte Inclusión en Adobe Analytics y Adobe Target para obtener más información.
Inicio de sesión único single-sign-on
Enviar encabezado de prueba send-test-header
Consulte Inicio de sesión único para obtener más información.
Comandos cURL comunes de AEM para la manipulación de contenido common-content-manipulation-aem-curl-commands
Esta es una lista de comandos cURL de AEM para la manipulación de contenido.
localhost
en el puerto 4502
y utiliza el usuario admin
con la contraseña admin
. Los marcadores de posición de comandos adicionales se establecen entre corchetes angulares.Administración de páginas page-management
Activación de página page-activation
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 page-deactivation
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 tree-activation
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 lock-page
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 unlock-page
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 copy-page
curl -u <user>:<password> -F cmd=copyPage -F destParentPath=/path/to/destination/parent -F srcPath=/path/to/source/location http://localhost:4502/bin/wcmcommand
Cómo realizar un despliegue superficial shallow-rollout
Al utilizar AEM as a Cloud Service, puede haber casos en los que necesite desplegar una sola página específica sin propagar sus subpáginas. Si no se configura correctamente, el comando curl típico para desplegar páginas podría incluir inadvertidamente subpáginas. En esta sección se describe cómo ajustar el comando curl para lograr un despliegue superficial de una página especificada y excluir cualquier subpágina adicional.
Para realizar un despliegue superficial, siga estos pasos:
- Modifique el comando curl existente cambiando el parámetro de
type=deep
atype=page
. - Utilice la siguiente sintaxis para el comando curl:
curl -H "Authorization: Bearer <token>" "https://<instance-url>/bin/asynccommand" \
-d type=page \
-d operation=asyncRollout \
-d cmd=rollout \
-d path="/content/<your-path>"
Compruebe también lo siguiente:
- Asegúrese de reemplazar
<token>
con su token de autorización real y<instance-url>
con su URL de instancia específica. - Reemplace
/content/<your-path>
por la ruta de acceso de la página específica que desea desplegar.
Al establecer type=page
, el comando identifica solamente la página especificada y excluye las subpáginas. Como tal, esta configuración permite un control preciso sobre la implementación de contenido, lo que garantiza que solo los cambios deseados se propaguen entre entornos. Además, este ajuste también se ajusta a cómo se administran los despliegues mediante la interfaz gráfica de usuario de AEM al seleccionar páginas individuales.
Flujos de trabajo workflows
Consulte Interactuar con flujos de trabajo mediante programación para obtener más información.
Contenido de Sling sling-content
Crear una carpeta create-a-folder
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
Eliminar un nodo delete-a-node
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
Mover un nodo move-a-node
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Copiar un nodo copy-a-node
curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Cargar Archivos con Sling PostServlet upload-files-using-sling-postservlet
curl -u <user>:<password> -F"*=@test.properties" http://localhost:4502/etc/test
Cargar Archivos usando Sling PostServlet y especificando el nombre del nodo upload-files-using-sling-postservlet-and-specifying-node-name
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
Cargar Archivos especificar un tipo de contenido upload-files-specifying-a-content-type
curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test
Manipulación de recursos asset-manipulation
Consulte API HTTP de Assets para obtener más información.