2016-03-31 19 views
3

Artifactory'de yeniyim. Şu anda bir depodaki tüm eserleri listelemek için bir proje üzerinde çalışıyorum.Tüm eserlerin bir havuzda bulunan eserlerinin listesi (jfrog)

Artifactory versiyonu: (sertifika doğrulaması kapalı) 4.1.3 Pro

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> 

Bir hata (Kötü istek) atıyor. Aşağıdaki repos savaş, savaş-dev, savaş sürümü, webapp, webapp-dev eserler listelemeye çalışın (Artefakt veritabanı ve http isteği) repos listesini alın. artdb (Artifactory veritabanı) ve artifactory url repo listesini alma

DİNLENME anonim aramaları kullanarak eserler dışarı listelemek için çalıştı, ama hiçbir günlükleri $ARTIFACTORY_HOME/logs/request_trace.log $ARTIFACTORY_HOME/logs/request.log

içinde bulunmaktadır. Listelenen reposlar birbirinden farklıdır. Hangisi doğru?

Listelenen bu kadar çok repolar

mysql> select distinct(repo) from nodes; 
| war        | 
| war-dev       | 
| war-release      | 

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

birisi yardım repo eserlerin listesini Lütfen öğrenmek Can. Teşekkür ederim!

cevap

8

AQL gitmenin yoludur. Ve sorgu neredeyse iyi (Eğer war veya web ile başlayan tüm repo için $match unuttum olduğunu. Sorun bukle olduğunu. Eğer kaçmak için gereken komut satırında sorgu dizesi yazmak istiyorsanız tüm iç " ve $ . Burada çalışma sorgusu var. Şimdi

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)" 

, bu cehennem yerine, bir metin dosyasına sorgu yazma ve -d @filename.aql ile geçen düşünün Bu durumda tüm kaçışa gerekmez ve sorgu olacak. benzen:

items.find({ 
    "type" : "file", 
    "$or":[{ 
    "repo" : {"$match" : "war*"}, 
    "repo" : {"$match" : "web*"} }]}) 
    .include("name","repo","path","size") 
    .sort({"$desc": ["size"]}) 
    .limit(10) 
+0

Merhaba @JBaruch filename.aql -d @. Önerinle denedim, ama şans yok. Yapıtın kendisi ile ilgili bir sorun gibi görünüyor. – user6136315

+0

Merhaba @JBaruch. Önerinle denedim, ama şans yok. Yapıtın kendisi ile ilgili bir sorun gibi görünüyor. -k ile curl komutunu güncelledim (cert doğrulama işlemini atlatmak için eklendi). Sanırım yapay olarak ulaşılamıyor. $ curl -u pkjogi: Ilikemyself @ 123 -X POST -k https://artifactory.clearslideng.com/artifactory/api/search/aql -d "items.find ({\" type \ ": \" dosya \ ", \" \ $ or \ ": [{\" repo \ ": {\" \ $ match \ ": \" war * \ "}, \" repo \ ": {\" \ $ match \ " : \ "web * \"}}]}). include (\ "name \", \ "repo \", \ "yol \", \ "size \"). sort ({\ "\ $ desc \" : [\ "size \"]}). limit (10) " – user6136315

+1

Hadi basit bir şey yapalım. [Sistem ping isteği] (https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-SystemHealthPing) komutunu uygulayın. Başarısız olursa, '-vv' bayrağı ile kıvrılma çıktısı ile yeni bir soru sorun. – JBaruch

İlgili konular