如何使用CQ中的CURL从JCR目录下获取所有网页?

时间:2015-02-03 19:10:20

标签: curl cq5 jcr

我想使用curl从我的CQ内容目录下获取所有网页(递归)。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

Apache Sling JSON GET servlet在CQ中默认启用,因此提供的访问控制允许您检索具有/content.tidy.N.json等URL的子树,其中N是所需的递归级别。

举个例子,

curl -s -u admin:admin http://localhost:8080/content/geometrixx.tidy.2.json

/content/geometrixx下检索树的两个级别。

如果结果中包含的元素多于可配置的限制,那么您将获得302响应,其中列出了以多个较小单位提供结果的网址。

另见http://sling.apache.org/documentation/bundles/rendering-content-default-get-servlets.html

答案 1 :(得分:0)

使用/bin/querybuilder servlet。例如,以下命令将从cq:Page

中获取所有/content/geometrixx/en个节点
curl -u admin:admin \
     "http://localhost:4502/bin/querybuilder.json?p.limit=-1&path=%2fcontent%2fgeometrixx%2fen&type=cq%3aPage"

网址本身可能不是很清楚,但可以自动生成。要获取此类URL,请打开/libs/cq/search/content/querydebug.html下提供的QueryBuilder调试器工具。然后粘贴以下QueryBuilder谓词:

type=cq:Page
path=/content/geometrixx/en
p.limit=-1

然后点击搜索。生成的JSON结果URL可在 JSON QueryBuilder链接下找到。有关谓词格式的更多信息可以在official documentation

中找到