2017-05-19 17 views
2

AQLを使用してアーティファクトをダウンロードする方法はありますか?Artifactory 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のようなものを入手できますか?

EDIT:

私はまた、jfrogのCLIでこれをやってみましたが、彼らは完全に(ソートおよび制限は動作しませんでした)があっ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 
    } 
    ] 
} 

EDIT 2:

はjfrog-CLIを追加しました-go号:https://github.com/JFrogDev/jfrog-cli-go/issues/56

答えて

2

A nはartifactoryからファイルをダウンロードするためにあなたのAQLスクリプトを使用する簡単な方法は、ここで言及としてCLI JFrogを使用することです:https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-Download,CopyandMoveCommandsSpecSchema

CLIは、Linux、MacやWindows用の実行ファイルとしてダウンロードすることができ、

ニーズに合わせなければなりません

curlコマンドで実行できるのは、aqlクエリの結果を解析し、各ファイルのダウンロード要求を実行することだけです。

+0

jfrogのCLIは、並べ替えや(編集を参照してください)私の結果を制限することができませんでした。ここでの大きな痛みは、何か非常にシンプルなものでは、返されたjsonを解析する高水準の言語を持っていなければならないということです.AQLでは結果を1つに絞り込み、それを得ることができます。 – DavidG

2

私はちょうど非常によく似たものを探していました。ダウンロードスペックファイルを使用して、特定のレポとパスから最新のアーティファクトをダウンロードしました。私はAQLを使用するかどうか気にしない、私はちょうどdownload-spec.jsonファイルでそれをしたい。上のlinkに行く場合の例5を見てください。

はあなたの例のために変更された:

{ 
    "files": [ 
    { 
    "pattern": "path/*.rpm", 
    "target": "my/download/path/", 
    "sortBy": "created", 
    "sortOrder": "desc", 
    "limit": 1, 
    } 
    ] 
} 
関連する問題