簡體   English   中英

使用Powershell從人工倉庫下載多個文件

[英]Download multiple files from the artifactory repo using powershell

我試圖編寫一個Powershell腳本,該腳本從我的人工倉庫中下載多個文件。 通過傳遞文件名,我可以使用以下某種邏輯。

$files = @("test1.zip", "test.zip") 

foreach($file in $files)
{
Invoke-WebRequest -Uri "$artifactory_url/$file" -OutFile "D:\download\$file"
}

但是,有沒有辦法下載所有不帶任何傳遞名稱的文件? 我嘗試使用(* zip)這樣的通配符,但是看起來Invoke-webrequest不接受通配符。 並沒有發現與Start-bittransfer cmdlet以及在文章https://blogs.technet.microsoft.com/heyscriptingguy/2012/08/17/use-powershell-3-0-to-easily-download-60中所述的運氣跨文件

我可以使用以下命令在回購中提取文件列表

((Invoke-WebRequest $url).links | Where href -match "zip$").href

如何使用此命令下載文件? 有沒有更好的方法從人工倉庫或http端點下載多個文件? 我必須在多台服務器上執行此操作。 因此,我沒有考慮jfrog cli的用法。 提前致謝

您可能缺少與請求一起發送的憑據。

如果您使用的是Artifactory Key,則可以使用如下所示的WebClient對象-

 #example Artifactory url
 $artifactory_url = "https://artifactory.company.com/artifactory/"
 #example Artifactory Key
 $ArtifactoryKey = "AKCp2VpEfLuMVkxpmH9rSiZT3RPoWCucL8kEiq4SjbEuuuCFdNf5t5E6dom32TCE3efy2RCyg" 

 $wc = New-Object System.Net.WebClient
 $wc.Headers.Add("X-JFrog-Art-Api", $ArtifactoryKey)
 $files = @("test1.zip", "test.zip") 
 try {
   foreach($file in $files) {
     $wc.DownloadFile("$artifactory_url/$file", "D:\download\$file")
   }
 }
 catch {
    $Host.UI.WriteErrorLine("Error while Trying to download Artifacts.")
    $Host.UI.WriteErrorLine($_.Exception.Message)
    exit
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM