有什么方法可以使用AQL下载工件吗?
我收到了一个查询,其中包括:
curl -u user:pass \
-X POST https://artifactoryURL/artifactory/api/search/aql \
-H 'content-type: text/plain' \
-T query.aql还有我的query.aql
items.find(
{
"repo":{"$eq":"repo"},
"$and": [
{
"path": { "$match": "path/*"},
"name": { "$match": "*.rpm"}
}
]
}
)
.sort({ "$desc": ["modified"] })
.limit(1)现在我知道它返回了我想要的东西,是否有一种方法可以将请求从api/search/aql更改为类似于api/download/aql的东西并获取这些项?
编辑:
我也尝试过在jfrog 中这样做,但是他们并不完全支持AQL (排序和限制没有起作用)。
这是我尝试过的命令:
jfrog rt s --spec=query-aql.json而未能对结果进行排序和限制的规范:
{
"files": [
{
"aql": {
"items.find": {
"repo": "repo",
"$and": [
{
"path": { "$match": "path/*"},
"name": { "$match": "*.rpm"}
}
]
}
},
"sort": {
"$asc": ["modified"]
},
"limit": 1
}
]
}编辑2:
添加了一个jfrog go问题:https://github.com/JFrogDev/jfrog-cli-go/issues/56
发布于 2017-05-22 13:27:53
使用aql脚本从工件下载文件的一种简单方法是使用JFrog cli,如此处所述:https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-Download,CopyandMoveCommandsSpecSchema
cli可以作为linux、mac或windows的可执行文件下载,并且应该适合您的需要。
使用curl命令,您可以做的唯一事情就是解析aql查询的结果,并对每个文件执行下载请求。
发布于 2018-01-03 00:55:35
我只是在寻找一个非常相似的东西--使用下载规范文件从给定的回购和路径中下载最新的工件。我不管我是否使用AQL,我只是希望它在download-spec.json文件。如果您转到上面的链接,请看示例5。
针对您的示例进行修改:
{
"files": [
{
"pattern": "path/*.rpm",
"target": "my/download/path/",
"sortBy": "created",
"sortOrder": "desc",
"limit": 1,
}
]
}发布于 2018-04-17 16:14:31
jfrog支持--limit、--sort-order和--sort-by参数。
以下几点对我来说是可行的:
jfrog rt search --spec=/tmp/jfrogfilespec.json --sort-by created --sort-order=desc --limit 1 json规范文件的内容如下:
{ "files": [ { "aql": { "items.find": { "repo":{"$eq":"my-release-repo"}, "name":{"$match":"my-artifact-prefix*"} } } } ] }这将生成以下查询(根据调试模式):
items.find( { "repo":{"$eq":"my-release-repo"}, "name":{"$match":"my-artifact-prefix*"} } ).include("name","repo","path","actual_md5","actual_sha1","size","type","created").sort({"$desc":["created"]}).limit(1)令人沮丧的是,我似乎找不到一种方法,用一个允许我影响搜索的“包含”修饰符部分的文件使用"jfrog搜索“。
https://stackoverflow.com/questions/44077569
复制相似问题