我正在開發 Jenkins 宣告式管道。我將版本作為引數,根據該版本,我想在下載之前知道 Jfrog Artifactory 中是否存在特定檔案夾。我已經安裝了 Jenkins Artifactory 插件。有沒有辦法在下載之前知道這些資訊?
編輯:我意識到我的問題有點斷章取意。最后我想做的是上傳一個神器。但是如果工件已經存在,我想警告用戶如果他想繼續。我想知道是否有解決方案,不同于下載工件以查看它是否存在,根據下載是否成功發出警告,然后上傳工件。
uj5u.com熱心網友回復:
您可以使用jfrog rt s JFrog CLI命令在 Artifactory 中搜索檔案。
添加--count到命令中,計算在指定路徑下在 Artifactory 中找到的專案總數。例如,假設您要檢查存盤庫中是否f.zip存在名為的檔案generic-local,在a/b/路徑下,運行以下命令
jfrog rt s generic-local/a/b/f.zip --count
輸出可能是
[Info] Searching artifacts...
[Info] Found 0 artifacts.
0
請注意,它在上面的示例中回傳 0。如果檔案存在,它將回傳 1。由于只有最后一個輸出行被發送到 stdout,您可以通過例如將其寫入檔案來獲取它。
uj5u.com熱心網友回復:
一種選擇是使用 curl,就像您要下載檔案一樣。但不是提出 GET 請求,而是運行 HEAD 請求。
curl -X HEAD ...
curl --head ...
HEAD 方法與 GET 相同,除了服務器不得在回應中回傳訊息正文。包含在回應 HEAD 請求的 HTTP 標頭中的元資訊應該與回應 GET 請求發送的資訊相同。此方法可用于獲取有關請求所隱含的物體的元資訊,而無需傳輸物體主體本身。 https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/326754.html
標籤:詹金斯 詹金斯管道 詹金斯插件 人工制品 jenkins-job-dsl
