Как перебрать все файлы внутри папки и запустить команду curl для установки пакетов AEM - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать сценарий оболочки, который будет перебирать все zip-файлы и устанавливать их в диспетчере пакетов AEM с помощью команды curl. Ниже приведена единственная команда curl, которая правильно устанавливает пакет в соответствующем экземпляре AEM.

curl -u admin:admin -F file=@"content-ope.zip" -F name="content-ope.zip" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp

Но нам нужно установить много zip-файлов, поэтому мы планируем хранить их все в одной папке, повторять все zip-файлы и устанавливать с помощью команды curl. Пробовал с циклом while и for, но не смог прочитать все файлы .zip с помощью сценария оболочки.

Может кто-нибудь иметь представление об этом?

Ответы [ 3 ]

2 голосов
/ 21 марта 2019

Я написал именно эту вещь, смотрите здесь:

https://gist.github.com/ahmed-musallam/07fbf430168d4ac57bd8c89d8be9bca5

#!/bin/bash
# this script will install ALL zip packages in current directory the AEM instance at 4502
for f in *.zip
do
    echo "installing: $f"
    curl -u admin:admin -F file=@"$f" -F name="$f" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp
    echo "done."

done
1 голос
/ 21 марта 2019

Вместо использования curl вы можете просто скопировать файлы в папку установки экземпляра AEM.Они будут установлены автоматически.https://helpx.adobe.com/in/experience-manager/6-3/sites/administering/using/package-manager.html#FileSystemBasedUploadandInstallation

0 голосов
/ 21 марта 2019
find . -name "*.zip" -maxdepth 1 -exec curl -u admin:admin -F file=@"{}" -F name="{}" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp ";"

Узел, он заменит ./foo.zip вместо foo.zip.Если вам нужно удалить ./, вам, вероятно, следует написать shell-скрипт, заключающий в себе команду curl, которая принимает имя zip-файла в качестве аргумента и удаляет ./ из него перед передачей в curl.

...