Show Menu
TÓPICOS×

Uso do cURL com o AEM

Geralmente, os administradores precisam automatizar ou simplificar tarefas comuns em qualquer sistema. Por exemplo, no AEM, gerenciar usuários, instalar pacotes e gerenciar pacotes OSGi são tarefas que devem ser feitas com frequência.
Devido à natureza RESTful da estrutura Sling na qual o AEM é criado, a maioria das tarefas pode ser reduzida a uma chamada de URL. cURL pode ser usado para executar tais chamadas de URL e pode ser uma ferramenta útil para administradores de AEM.

O que é cURL

cURL é uma ferramenta de linha de comando de código aberto usada para executar manipulações de URL. Ele suporta uma grande variedade de protocolos de Internet, incluindo HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP e RTSP.
cURL é uma ferramenta bem estabelecida e amplamente usada para obter ou enviar dados usando a sintaxe do URL e foi originalmente lançada em 1997. O nome cURL originalmente significava "consulte URL".
Devido à natureza RESTful da estrutura Sling na qual o AEM é criado, a maioria das tarefas pode ser reduzida a uma chamada de URL, que pode ser executada com cURL. tarefas de manipulação de conteúdo, como ativação de páginas e inicialização de workflows, bem como tarefas Comandos Comuns do AEM Operacional cURL operacionais, como gerenciamento de pacotes e gerenciamento de usuários, podem ser automatizadas usando cURL. Além disso, você pode criar seus próprios comandos cURL para a maioria das tarefas no AEM.
Qualquer comando do AEM executado por meio de cURL deve ser autorizado, assim como qualquer usuário do AEM. Todas as ACLs e direitos de acesso são respeitados ao usar cURL para executar um comando do AEM.

Download do cURL

cURL é uma parte padrão do macOS e algumas distrações do Linux. No entanto, ele está disponível para a maioria dos sistemas operacionais. Os downloads mais recentes podem ser encontrados em https://curl.haxx.se/download.html .
O repositório de origem do cURL também pode ser encontrado no GitHub.

Criação de um comando AEM pronto para cURL

Os comandos cURL podem ser criados para a maioria das operações no AEM, como disparar workflows, verificar configurações OSGi, disparar comandos JMX, criar agentes de replicação e muito mais.
Para encontrar o comando exato necessário para sua operação específica, é necessário usar as ferramentas do desenvolvedor em seu navegador para capturar a chamada POST para o servidor ao executar o comando AEM.
As etapas a seguir descrevem como fazer isso usando a criação de uma nova página no navegador Chrome como exemplo.
  1. Prepare a ação que deseja invocar no AEM. Nesse caso, continuamos até o final do assistente Criar página , mas ainda não clicamos em Criar .
  2. Start as ferramentas do desenvolvedor e selecione a guia Rede . Clique na opção Preservar registro antes de limpar o console.
  3. Clique em Criar no assistente Criar página para realmente criar o fluxo de trabalho.
  4. Clique com o botão direito do mouse na ação POST resultante e selecione Copiar -> Copiar como cURL .
  5. Copie o comando cURL para um editor de texto e remova todos os cabeçalhos do comando, que são start com -H (realçados em azul na imagem abaixo) e adicione o parâmetro de autenticação apropriado, como -u <user>:<password> .
  6. Execute o comando cURL pela linha de comando e visualização a resposta.

Comandos Comuns do AEM Operacional cURL

Esta é uma lista de comandos cURL do AEM para tarefas administrativas e operacionais comuns.
Os exemplos a seguir presumem que o AEM está sendo executado localhost na porta 4502 e usa o usuário admin com senha admin . Marcadores de posição de comando adicionais são definidos em colchetes angulares.

Gerenciamento de pacotes

Lista de todos os pacotes instalados

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

Criar um pacote

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>

Pré-visualização de um pacote

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

Conteúdo do pacote de Lista

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

Criar um pacote

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

Revincular um pacote

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

Renomear um pacote

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

Carregar um pacote

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

Instalar um pacote

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

Desinstalar um pacote

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

Excluir um pacote

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

Download de um pacote

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

Gerenciamento de usuários

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

Adicionar uma propriedade a um usuário existente

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

Criar um usuário com um Perfil

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

Criar um novo usuário como membro de um grupo

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

Adicionar um usuário a um grupo

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

Remover um usuário de um grupo

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

Definir a associação de um grupo de usuários

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

Excluir um usuário

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


Excluir um grupo

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

Backup

Consulte Backup e restauração para obter detalhes.

OSGi

Iniciar um pacote

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

Parando um pacote

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

Dispatcher

Invalidar o 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

Despeje o 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 replicação

Verifique o status de um 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

Excluir um agente

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

Criar um 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 um agente

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

Limpar uma fila de agentes

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

Communities

Atribuir e Revogar Crachás

Consulte Pontuação de comunidades e emblemas para obter detalhes.
Consulte Scoring e Badges Essentials para obter detalhes.

Reindexação MSRP

Consulte MSRP - Provedor de recursos do Armazenamento MongoDB para obter detalhes.

Segurança

Ativação e desativação do CRX DE Lite

Consulte Ativar o CRXDE Lite no AEM para obter detalhes.

Coleta de lixo do armazenamento de dados

Consulte Coleta de lixo do armazenamento de dados para obter detalhes.

Integração do Analytics e do Público alvo

Logon único

Enviar cabeçalho de teste

Consulte Logon único para obter detalhes.

Comandos AEM cURL de gerenciamento de conteúdo comum

Esta é uma lista de comandos cURL do AEM para manipulação de conteúdo.
Os exemplos a seguir presumem que o AEM está sendo executado localhost na porta 4502 e usa o usuário admin com senha admin . Marcadores de posição de comando adicionais são definidos em colchetes angulares.

Gerenciamento de página

Ativação da página

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

Desativação da página

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

Ativação de árvore

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 a 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

Página de cópia

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

Fluxos de trabalhos

Consulte Interagir com Workflows programaticamente para obter detalhes.

Sling Content

Create a Folder

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

Excluir um nó

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

Mover um nó

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

Copiar um nó

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

Carregar arquivos usando Sling PostServlet

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

Carregar arquivos usando o Sling PostServlet e especificar o nome do nó

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

Carregar arquivos especificando um tipo de conteúdo

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

Manipulação de ativos

Consulte API HTTP de ativos para obter detalhes.