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.
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.
-
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.
-
Starta utvecklarverktygen och välj fliken Nätverk. Klicka på alternativet Bevara logg innan du rensar konsolen.
-
Klicka på Skapa i guiden Skapa sida för att skapa arbetsflödet.
-
Högerklicka på den resulterande POST-åtgärden och välj Kopiera > Kopiera som cURL.
-
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>.
-
Kör kommandot cURL via kommandoraden och visa svaret.
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.
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.
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:
- Ändra det befintliga curl-kommandot genom att ändra parametern från
type=deeptilltype=page. - 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:
- Se till att du ersätter
<token>med din faktiska auktoriseringstoken och<instance-url>med din specifika instans-URL. - 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.