Använda cURL med AEM using-curl-with-aem

Administratörer behöver ofta automatisera eller förenkla vanliga uppgifter i alla system. I AEM är till exempel hantering av användare, installation av paket och hantering av OSGi-paket uppgifter som måste utföras ofta.

På grund av Sling-ramverkets RESTful-karaktär, som AEM bygger på, kan de flesta åtgärder utföras med ett URL-anrop. cURL kan användas för att köra sådana URL-anrop och kan vara ett användbart verktyg för AEM-administratörer.

Vad är cURL what-is-curl

cURL är ett kommandoradsverktyg med öppen källkod som används för att utföra URL-manipulationer. Den stöder ett brett utbud av internetprotokoll inklusive HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP och RTSP.

cURL är ett väletablerat och allmänt använt verktyg för att hämta eller skicka data med hjälp av URL-syntaxen och släpptes ursprungligen 1997. Namnet cURL betydde ursprungligen "se URL".

På grund av Sling-ramverkets RESTful-karaktär, som AEM bygger på, kan de flesta åtgärder minskas till ett URL-anrop, som kan köras med cURL. Åtgärder för innehållsredigering, t.ex. aktivering av sidor och start av arbetsflöden samt operativa uppgifter, t.ex. pakethantering och hantering av användare, kan automatiseras med cURL. Dessutom kan du skapa egna cURL-kommandon för de flesta åtgärder i AEM.

NOTE
Alla AEM-kommandon som utförs via cURL måste godkännas precis som alla andra användare till AEM. Alla åtkomstkontrollistor och åtkomsträttigheter respekteras när cURL används för att köra ett AEM-kommando.

Hämtar cURL downloading-curl

cURL är en standarddel av macOS och vissa Linux-miljöer. Det finns dock för de flesta operativsystem. De senaste nedladdningarna finns på https://curl.haxx.se/download.html.

Källdatabasen för cURL finns även på GitHub.

Skapa ett cURL-klart AEM-kommando building-a-curl-ready-aem-command

cURL-kommandon kan byggas för de flesta åtgärder i AEM, till exempel för att utlösa arbetsflöden, kontrollera OSGi-konfigurationer, utlösa JMX-kommandon, skapa replikeringsagenter och mycket annat.

Om du vill hitta exakt det kommando som du behöver för en viss åtgärd måste du använda utvecklarverktygen i webbläsaren för att hämta POST-anropet till servern när du kör AEM-kommandot.

I följande steg beskrivs hur du gör detta genom att skapa en ny sida i webbläsaren i Chrome.

  1. Förbered den åtgärd du vill anropa i AEM. I det här fallet har vi gått till slutet av guiden Skapa sida, men ännu inte klickat på Skapa.

    chlimage_1-66

  2. Starta utvecklarverktygen och välj fliken Nätverk. Klicka på alternativet Bevara logg innan du rensar konsolen.

    chlimage_1-67

  3. Klicka på Skapa i guiden Skapa sida för att skapa arbetsflödet.

  4. Högerklicka på den resulterande POST-åtgärden och välj Kopiera > Kopiera som cURL.

    chlimage_1-68

  5. Kopiera cURL-kommandot till en textredigerare och ta bort alla rubriker från kommandot, som börjar med -H (markerat med blått i bilden nedan) och lägger till rätt autentiseringsparameter, till exempel -u <user>:<password>.

    chlimage_1-69

  6. Kör kommandot cURL via kommandoraden och visa svaret.

    chlimage_1-70

Vanliga AEM cURL-kommandon common-operational-aem-curl-commands

Här är en lista med AEM cURL-kommandon för vanliga administrativa och operativa uppgifter.

NOTE
I följande exempel antas att AEM körs på localhost på port 4502 och att användaren admin använder lösenordet admin. Ytterligare kommandoplatshållare anges inom vinkelparenteser.

Pakethantering package-management

Visa alla installerade paket

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

Skapa ett paket 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>

Förhandsgranska ett paket preview-a-package

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

Innehåll i listpaket list-package-content

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

Bygg ett paket build-a-package

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

Packa om ett paket rewrap-a-package

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

Byta namn på ett paket 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

Ladda upp ett paket upload-a-package

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

Installera ett paket install-a-package

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

Avinstallera ett paket uninstall-a-package

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

Ta bort ett paket delete-a-package

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

Hämta ett paket download-a-package

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

Replikera ett paket replicate-a-package

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

Användarhantering user-management

Skapa en ny användare create-a-new-user

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

Skapa en ny grupp create-a-new-group

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

Lägg till en egenskap för en befintlig användare add-a-property-to-an-existing-user

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

Skapa en användare med en profil 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

Skapa en ny användare som medlem i en grupp 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

Lägga till en användare i en grupp add-a-user-to-a-group

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

Ta bort en användare från en grupp remove-a-user-from-a-group

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

Ange en användares gruppmedlemskap set-a-user-s-group-membership

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

Ta bort en användare delete-a-user

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

Ta bort en grupp delete-a-group

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

Säkerhetskopiering backup

Mer information finns i Säkerhetskopiera och återställ.

OSGi osgi

Starta ett paket starting-a-bundle

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

Stoppa ett paket stopping-a-bundle

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

Dispatcher dispatcher

Ogiltigförklara cachen 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

Ta bort cachen 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

Replikeringsagent replication-agent

Kontrollera status för en agent 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

Ta bort en agent delete-an-agent

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

Skapa en agent 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

Pausa en agent 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

Rensa en agentkö 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

Tilldela och återkalla märken assign-and-revoke-badges

Mer information finns i Webbgruppsbedömning och emblem.

Mer information finns i Grundläggande om poäng och emblem.

MSRP-omindexering msrp-reindexing

Mer information finns i MSRP - MongoDB-lagringsresursprovidern.

Dokumentskydd security

Aktivera och inaktivera CRX DE Lite enabling-and-disabling-crx-de-lite

Mer information finns i Aktivera CRXDE Lite i AEM.

Skräpinsamling för datalager data-store-garbage-collection

Mer information finns i skräpinsamlingen för datalagret.

Analys och målintegrering analytics-and-target-integration

Mer information finns i Gå till Adobe Analytics och Adobe Target.

Enkel inloggning single-sign-on

Skicka testhuvud send-test-header

Mer information finns i Enkel inloggning.

Vanliga kommandon för innehållshantering i AEM cURL common-content-manipulation-aem-curl-commands

Här är en lista med AEM cURL-kommandon för innehållsändring.

NOTE
I följande exempel antas att AEM körs på localhost på port 4502 och att användaren admin använder lösenordet admin. Ytterligare kommandoplatshållare anges inom vinkelparenteser.

Sidhantering page-management

Sidaktivering page-activation

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

Inaktivering av sida page-deactivation

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

Aktivering av träd 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

Lås sida 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

Lås upp sida 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

Kopiera sida 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

Så här utför du en grund utrullning shallow-rollout

När du använder AEM as a Cloud Service kan det finnas tillfällen då du behöver lansera en enskild, specifik sida utan att dess undersidor sprids. Om det inte är korrekt konfigurerat kan det vanliga kommandot för att rulla ut sidor av misstag innehålla undersidor. I det här avsnittet beskrivs hur du justerar rullningskommandot för att få en grund utrullning av en viss sida och utesluter eventuella ytterligare undersidor.

Så här utför du en grund utrullning:

  1. Ändra det befintliga curl-kommandot genom att ändra parametern från type=deep till type=page.
  2. Använd följande syntax för kommandot 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>"

Kontrollera även följande:

  1. Se till att du ersätter <token> med din faktiska auktoriseringstoken och <instance-url> med din specifika instans-URL.
  2. Ersätt /content/<your-path> med sökvägen till den specifika sida som du vill ta bort.

Genom att ange type=page aktiverar kommandot bara den angivna sidan, exklusive eventuella underordnade sidor. Den här konfigurationen ger exakt kontroll över distributionen av innehåll och säkerställer att endast de tänkta ändringarna sprids i olika miljöer. Den här justeringen anpassas dessutom till hur rollouter hanteras via AEM GUI när du markerar enskilda sidor.

Arbetsflöden workflows

Mer information finns i Interagera med arbetsflöden programmatiskt.

Sling Content sling-content

Skapa en mapp create-a-folder

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

Ta bort en nod delete-a-node

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

Flytta en nod move-a-node

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

Kopiera en nod copy-a-node

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

Ladda upp filer med Sling PostServlet upload-files-using-sling-postservlet

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

Ladda upp filer med Sling PostServlet och ange nodnamn upload-files-using-sling-postservlet-and-specifying-node-name

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

Ladda upp filer som anger en innehållstyp upload-files-specifying-a-content-type

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

Tillgångshantering asset-manipulation

Mer information finns i Assets HTTP API.

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2