Je veux créer un package aem en utilisant CURL. Je ne peux pas ajouter de filtres au package.
curl -u admin: admin -X POST http: // localhost: 4502 / crx / packmgr / service / .json / etc / packages / mes_packages / testpackage? cmd = create -d packageName = testpackage -d groupName = my_packages
curl -u admin: admin -X POST http: // localhost: 4502 / crx / packmgr / update.jsp -F chemin = / etc / packages / mes_packages / testpackage.zip -F packageName = testpackage -F groupName = mes_packages -F {filter = "[{\ 'root \': \ '/ content / wucom / nam / ca / fr / contactus-success \ '}] "} -F' charset = UTF-8 '
curl -u admin: admin -X POST http: // localhost: 4502 / crx / packmgr / service / .json / etc / packages / mes_packages / testpackage.zip? cmd = build
Le package construit n'a pas de filtre.
3 Réponses :
Étant donné que /crx/packmgr/service.jsp ne prend pas en charge la création de filtres, vous pouvez à la place faire ce qui suit:
Téléchargez le fichier zip du package:
curl -u admin: admin http: // localhost: 4502 / etc / packages /my_packages/testpackage.zip
Extrayez le fichier filter.xml du zip en utilisant la commande jar:
jar -xvf testpackage.zip META-INF / vault / filter.xml
Modifiez le fichier META-INF / vault / filter.xml extrait.
Mettez à jour le fichier zip avec le nouveau filter.xml en utilisant la commande jar -uvf:
jar -uvf testpackage.zip META-INF / vault / filter.xml
Consultez cet article pour obtenir un exemple de code sur la façon de générer un package filter.xml à l'aide de code python: https://helpx.adobe.com/experience-manager/kb/How-to-build-a-package-from-an-XPath-query- sans-installer-aucun-outil-sur-l'instance-AEM-AEM.html
Je poste la commande qui aide à créer un filtre et travaille avec AEM 6.4. La création et la construction d'un package sont des tâches relativement plus simples et celles-ci ont été ignorées pour que l'article reste succinct -
curl -X POST \ http://host:4502/etc/packages/my_packages/content_backup2.zip/jcr:content/vlt:definition/filter/ \ -H 'Postman-Token: bc168785-94dd-4b99-a302-4b0a70b7225c' \ -H 'cache-control: no-cache' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -F _charset_=utf-8 \ -F jcr:primaryType=nt:unstructured \ -F mode=replace \ -F root=/content \ -F :nameHint=f0
Cette commande créera un nœud de filtre sous vlt: definition à l'intérieur du package.
La création de nœuds de sous-filtre est également simple. Cela prendra la sauvegarde du contenu de l'arborescence complète des nœuds de contenu. Vous pouvez remplacer " -F root = / content " par votre exigence-
curl -X POST \ http://Host:4502/etc/packages/my_packages/content_backup2.zip/jcr:content/vlt:definition/ \ -H 'Postman-Token: 8ae9290f-af72-44a4-808c-658a7130d5f1' \ -H 'cache-control: no-cache' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -F _charset_=utf-8 \ -F jcr:primaryType=nt:unstructured \ -F :nameHint=filter
<form id="damFilterForm" method="POST" action="/etc/packages/local_packages/packageWithFiltersYo.zip/jcr:content/vlt:definition/filter/f0" enctype="multipart/form-data"> <input id="damPath" type="hidden" name="root" value="/"/> <input id="damPath" type="hidden" name="jcr:primaryType" value="nt:unstructured"/> <input type="hidden" name="mode" value="replace"/> <input id="helperDamSubmit" type="Submit" value="Submit DAM" style="display:none" /> </form> $("#damFilterForm").submit();Please note: The filter can be added like this, just that this gives a renderer that isn't user friendly and there seems now way to get it back to the main referrer JSP. i.e. the redirect URL is the filter node itself. And to get it back to the form is quite a task.