首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JFrog人工制品上列出存储库中的所有工件

在JFrog人工制品上列出存储库中的所有工件
EN

Stack Overflow用户
提问于 2016-04-01 06:42:07
回答 3查看 26.8K关注 0票数 9

我是艺术工厂的新人。目前,我正在进行一个项目,以列出存储库中的所有工件。

Artifactory版本:4.1.3 Pro (已关闭证书验证)

代码语言:javascript
复制
curl -u uname:password -X POST -k https://artifactory.xxxx.com/artifactory/api/search/aql -d "items.find({"repo":"war"}).include("name","repo","path","size").sort({"$desc":["size"]}).limit(10)"


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /artifactory/api/search/aql was not found on this server.</p>
<hr>
<address>Apache/2.2.31 (Amazon) Server at artifactory.xxxx.com Port 443</address>
</body></html>

它抛出了一个错误(错误的请求)。尝试列出以下repos war、war-dev、war-release、webapp、webapp-dev中的工件(从Artifactory数据库和http请求中获取repos列表)。

我试图匿名列出使用REST调用的工件,但$ARTIFACTORY_HOME/logs/request_trace.log $ARTIFACTORY_HOME/logs/request.log中没有日志

从artdb(Artifactory数据库)和artifactory url获取repos列表。列出的回购不同。哪一个是正确的?

列出了这么多回购

代码语言:javascript
复制
mysql> select distinct(repo) from nodes;
| war                               |
| war-dev                           |
| war-release                       |

https://artifactory.xxxx.com/artifactory/repo/
webapp/                                                       
webapp-dev/                                                    

有没有人能帮我找出repo中的文物列表。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-02 03:59:20

AQL是一种可行的方法。而且您的查询几乎是正确的(您忘记了所有以warweb开头的代码库的$match。问题是卷曲。如果想要在命令行中编写查询字符串,则需要转义所有内部的"$。以下是工作查询:

代码语言:javascript
复制
curl -u uname:password -X POST -k https://artifactory.xxxx.com/artifactory/api/search/aql -d "items.find({\"type\" : \"file\",\"\$or\":[{\"repo\" : {\"\$match\" : \"war*\"}, \"repo\" : {\"\$match\" : \"web*\"} }]}).include(\"name\",\"repo\",\"path\",\"size\").sort({\"\$desc\": [\"size\"]}).limit(10)"

现在,这是地狱。相反,可以考虑在文本文件中编写查询,并使用-d @filename.aql传递它。在这种情况下,您不需要所有的转义,查询将如下所示:

代码语言:javascript
复制
items.find({
  "type" : "file",
  "$or":[{
    "repo" : {"$match" : "war*"}, 
    "repo" : {"$match" : "web*"} }]})
  .include("name","repo","path","size")
  .sort({"$desc": ["size"]})
  .limit(10)
票数 18
EN

Stack Overflow用户

发布于 2019-11-15 04:05:16

对我来说,当我使用Content-Type text/plain而不是application/json时,它可以工作。

代码语言:javascript
复制
curl -u uname -X POST http://host:8081/artifactory/api/search/aql -H "content-type: text/plain" -d @filename.aql
票数 3
EN

Stack Overflow用户

发布于 2016-04-06 08:22:50

这对我也很有效。您可以按照@JBaruch指定的方式编写命令,也可以运行JSON AQL文件。

curl -u uname -X POST http://host:8081/artifactory/api/search/aql -H "content-type: application/json" -d @filename.aql

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36345068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档