CQ5.5 通过 CURL 更新现有包

CQ5.5 Updating an existing package through CURL

我正在使用一系列 CURL 请求来创建我的包。

我目前在做什么:我创建了一个新包,向其中添加了过滤器,然后构建了包。

创建包:

curl -f -N -u ${USER}:${PASS} -d "packageName=${PACKAGE}&groupName=${GROUP}" "${CMS_HOST}/crx/packmgr/service/exec.json?cmd=create"

应用过滤器:

curl -f -N -u ${USER}:${PASS} -F "path=/etc/packages/${GROUP}/${PACKAGE}.zip" -F "packageName=${PACKAGE}" -F "groupName=${GROUP}" -F "version=" -F "description=" -F "thumbnail=" -F "filter=${FILTER}" -F "_charset_=UTF-8" "${CMS_HOST}/crx/packmgr/update.jsp"

构建包:

curl -f -N -u ${USER}:${PASS} -d "cmd=build" "${CMS_HOST}/crx/packmgr/service/script.html/etc/packages/${GROUP}/$PACKAGE.zip"

我想做什么添加更多过滤器 到这个包并构建它再次.

我想知道是否有更新现有包的方法。我一直在四处寻找,看看我们如何做到这一点,但都失败了。有人可以帮我吗?

谢谢。

更新:添加了我正在使用的 CURL 命令。

所有包都存储在/etc/packages/my_packages路径下,可以通过节点管理的标准curl命令修改。所有包都有过滤器 sub-nodes.

所有包管理器命令都可以通过/crx/packmgr/service.jsp?cmd=help

获得

例如,要构建一个包,请使用 /crx/packmgr/service.jsp?cmd=build

给你一个例子,我有一个已经有两个过滤器的包

要添加另一个过滤器

用于创建过滤器节点的 CURL

curl --data jcr:primaryType=nt:unstructured --user admin:admin http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2

添加过滤器属性

curl -u admin:admin -Froot="/content/geometrixx-outdoors/en/toolbar" http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html

如果需要为默认包行为添加额外的属性(即“mode”和“rules”)

curl -u admin:admin -Fmode="replace" http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html

curl -u admin:admin -Frules@TypeHint="String[]" -Frules=" " -Frules=" "http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html

最终构建您的包以影响附加过滤器以添加到您现有的包

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