2017-05-19 1 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과 같은 항목을 얻으시겠습니까?

편집 : 나는 또한 jfrog의 CLI와 함께이 일을 시도했지만 그들은 완전히이 AQL을 지원하지 않습니다

(종류와 제한이 작동하지 않았다).

{ 
    "files": [ 
    { 
     "aql": { 
     "items.find": { 
      "repo": "repo", 
      "$and": [ 
      { 
       "path": { "$match": "path/*"}, 
       "name": { "$match": "*.rpm"} 
      } 
      ] 
     } 
     }, 
     "sort": { 
     "$asc": ["modified"] 
     }, 
     "limit": 1 
    } 
    ] 
} 

편집 2 :

추가 된 jfrog-CLI 정렬 제한 결과에 실패

jfrog rt s --spec=query-aql.json 

그리고 사양 :

은 내가 시도 명령입니다 -go 문제 : https://github.com/JFrogDev/jfrog-cli-go/issues/56

답변

2

A N artifactory에서 파일을 다운로드하기 위해 AQL 스크립트를 사용하는 쉬운 방법은 여기 언급으로 JFrog CLI를 사용하는 것입니다 https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-Download,CopyandMoveCommandsSpecSchema

는 CLI는 리눅스, 맥 또는 윈도우 용 실행 파일로 다운로드 할 수 있으며 필요에 맞게해야을

curl 명령을 사용하면 수행 할 수있는 유일한 작업은 aql 쿼리의 결과를 구문 분석하고 각 파일에 대한 다운로드 요청을 수행하는 것입니다.

+0

jfrog의 CLI 정렬 내 결과를 (편집 참조) 제한하지 못했습니다. 여기에서 가장 큰 고통은 AQL이 내 결과를 하나로 좁히고 얻을 수 있도록해야 할 때 반환되는 json을 고수준으로 구문 분석해야한다는 것을 아주 단순하게 생각한다는 것입니다. – DavidG

2

필자는 매우 비슷한 것을 찾고있었습니다. 다운로드 사양 파일을 사용하여 지정된 저장소와 경로에서 최신 아티팩트를 다운로드했습니다. 내가 AQL을 사용하는지 상관없이, 나는 단지 download-spec.json 파일에서 그것을 원한다. 위의 link에 가면 보기 5을보십시오.

은 예를 들어 수정 :

{ 
    "files": [ 
    { 
    "pattern": "path/*.rpm", 
    "target": "my/download/path/", 
    "sortBy": "created", 
    "sortOrder": "desc", 
    "limit": 1, 
    } 
    ] 
}