Uso do cURL com o AEM using-curl-with-aem
Os administradores geralmente precisam automatizar ou simplificar tarefas comuns em qualquer sistema. No AEM, por exemplo, gerenciar usuários, instalar pacotes e gerenciar pacotes OSGi são tarefas que geralmente devem ser realizadas.
Devido à natureza RESTful da estrutura Sling na qual o AEM é criado, a maioria das tarefas pode ser feita com uma chamada de URL. O cURL pode ser usado para executar essas chamadas de URL e pode ser uma ferramenta útil para administradores do AEM.
O que é cURL what-is-curl
cURL é uma ferramenta de linha de comando de código aberto usada para executar manipulações de URL. Ele suporta uma ampla gama de protocolos de internet, incluindo HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP e RTSP.
O cURL é uma ferramenta bem estabelecida e amplamente usada para obter ou enviar dados usando a sintaxe de URL e foi lançado originalmente em 1997. O nome cURL originalmente significava "ver URL".
Devido à natureza RESTful da estrutura do Sling no 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 ativar páginas e iniciar fluxos de trabalho, e tarefas 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.
Baixando cURL downloading-curl
O cURL é uma parte padrão do macOS e de algumas distribuições 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 do AEM pronto para cURL building-a-curl-ready-aem-command
Os comandos cURL podem ser criados para a maioria das operações no AEM, como acionar workflows, verificar configurações OSGi, acionar comandos JMX, criar agentes de replicação e muito mais.
Para localizar 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.
-
Prepare a ação que deseja chamar no AEM. Nesse caso, chegamos ao fim do assistente Criar Página, mas ainda não clicamos em Criar.
-
Inicie as ferramentas de desenvolvedor e selecione a guia Rede. Clique na opção Preservar log antes de limpar o console.
-
Clique em Criar no assistente Criar página para realmente criar o fluxo de trabalho.
-
Clique com o botão direito do mouse na ação POST resultante e selecione Copiar > Copiar como cURL.
-
Copie o comando cURL para um editor de texto e remova todos os cabeçalhos do comando, que começam com
-H(destacado em azul na imagem abaixo) e adicione o parâmetro de autenticação adequado, como-u <user>:<password>.
-
Execute o comando cURL pela linha de comando e exiba a resposta.
Comandos Comuns do Operational AEM cURL common-operational-aem-curl-commands
Esta é uma lista de comandos cURL do AEM para tarefas administrativas e operacionais comuns.
localhost na porta 4502 e usa o usuário admin com a senha admin. Espaços reservados para comandos adicionais são definidos entre colchetes.Gerenciamento de pacotes package-management
Listar todos os pacotes instalados
curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls
Criar um pacote 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>
Visualizar um pacote preview-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
Listar conteúdo do pacote list-package-content
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents
Criar um pacote build-a-package
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
Reajustar um pacote rewrap-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
Renomear um pacote 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
Carregar um pacote upload-a-package
curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json
Instalar um pacote install-a-package
curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Desinstalar um pacote uninstall-a-package
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Excluir um pacote delete-a-package
curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Baixar um pacote download-a-package
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
Replicar um pacote replicate-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip?cmd=replicate
Gerenciamento de usuários user-management
Criar um novo usuário create-a-new-user
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
Criar um novo grupo 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 add-a-property-to-an-existing-user
curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html
Criar um usuário com um 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
Criar um novo usuário como membro de um 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
Adicionar um usuário a um grupo add-a-user-to-a-group
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Remover um usuário de um grupo remove-a-user-from-a-group
curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Definir a associação de grupo de um usuário set-a-user-s-group-membership
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
Excluir um usuário delete-a-user
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
Excluir um grupo delete-a-group
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup
Backup backup
Consulte Backup e restauração para obter detalhes.
OSGi osgi
Iniciar um pacote starting-a-bundle
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
Interrupção de um pacote stopping-a-bundle
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
Dispatcher dispatcher
Invalidar o cache 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
Remover o cache 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 replicação replication-agent
Verificar o status de um 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
Excluir um agente delete-an-agent
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
Criar um 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
Pausar um 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
Limpar uma fila de agente 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
Communities communities
Atribuir e revogar selos assign-and-revoke-badges
Consulte Pontuação e medalhas das comunidades para obter detalhes.
Consulte Fundamentos de pontuação e medalhas para obter detalhes.
Reindexação MSRP msrp-reindexing
Consulte MSRP - Provedor de Recurso de Armazenamento MongoDB para obter detalhes.
Segurança security
Ativar e desativar o CRX DE Lite enabling-and-disabling-crx-de-lite
Consulte Habilitando o CRXDE Lite no AEM para obter detalhes.
Coleta de lixo do armazenamento de dados data-store-garbage-collection
Consulte Coleta de Lixo do Repositório de Dados para obter detalhes.
Integração do Analytics e do Target analytics-and-target-integration
Consulte Aceitação no Adobe Analytics e no Adobe Target para obter detalhes.
Logon único single-sign-on
Enviar cabeçalho de teste send-test-header
Consulte Logon único para obter detalhes.
Comandos cURL do AEM para manipulação de conteúdo comum common-content-manipulation-aem-curl-commands
Esta é uma lista de comandos cURL do AEM para manipulação de conteúdo.
localhost na porta 4502 e usa o usuário admin com a senha admin. Espaços reservados para comandos adicionais são definidos entre colchetes.Gerenciamento de página page-management
Ativação 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
Desativação 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
Ativação em árvore 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
Página de cópia 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
Como executar uma implantação superficial shallow-rollout
Ao usar o AEM as a Cloud Service, pode haver instâncias em que você precise implantar uma única página específica sem propagar suas subpáginas. Se não for configurado corretamente, o comando curl típico para implantar páginas pode, inadvertidamente, incluir subpáginas. Esta seção descreve como ajustar o comando curl para obter uma implantação superficial de uma página especificada e excluir quaisquer subpáginas adicionais.
Para executar uma implantação superficial, siga estas etapas:
- Modifique o comando curl existente alterando o parâmetro de
type=deepparatype=page. - Use a seguinte sintaxe para o 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>"
Além disso, verifique o seguinte:
- Substitua
<token>pelo token de autorização real e<instance-url>pela URL da instância específica. - Substitua
/content/<your-path>pelo caminho da página específica que você deseja implantar.
Ao definir type=page, o comando é direcionado somente à página especificada, excluindo todas as subpáginas. Dessa forma, essa configuração permite o controle preciso da implantação de conteúdo, garantindo que somente as alterações desejadas sejam propagadas nos ambientes. Além disso, esse ajuste também se alinha à forma como as implantações são gerenciadas por meio da interface do AEM ao selecionar páginas individuais.
Fluxos de trabalhos workflows
Consulte Interação programática com fluxos de trabalho para obter detalhes.
Conteúdo do Sling sling-content
Criar uma pasta create-a-folder
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
Excluir um nó delete-a-node
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
Mover um nó move-a-node
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Copiar um nó copy-a-node
curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Fazer upload de arquivos usando o Sling PostServlet upload-files-using-sling-postservlet
curl -u <user>:<password> -F"*=@test.properties" http://localhost:4502/etc/test
Fazer upload de arquivos usando o Sling PostServlet e especificando o nome do nó upload-files-using-sling-postservlet-and-specifying-node-name
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
Fazer upload de arquivos especificando um tipo de conteúdo upload-files-specifying-a-content-type
curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test
Manipulação de ativos asset-manipulation
Consulte a API HTTP do Assets para obter detalhes.