在下载文件时, Install-ChocolateyZipPackage命令行开关似乎不支持基本身份验证,即通过诸如https://user:password@example.com/file.zip
. 如何在我的 Chocolatey 安装脚本中解决这个问题,即在https://user:password@example.com/file.zip
通过 Install-ChocolateyZipPackage 安装之前下载有问题的文件(例如)?
问问题
886 次
2 回答
1
托马斯在小组论坛中提出了一个很好的答案 - https://groups.google.com/forum/#!msg/chocolatey/e4lcPIrLhis/vfSUVe0SZcIJ
据我所知,不支持身份验证。但是您可以将 wget 指定为依赖项并使用它来下载文件。
我在我的一个包中使用它进行身份验证,它工作正常: https ://chocolatey.org/packages/rukerneltool#files (查看chocolateyInstall.ps1)
在 Linux 上,wget 将是在 Bash 脚本中处理此类事情的首选。
但是,如果您要制作软件包的软件是开源的,您可以将其直接集成到软件包中。这使它更容易。
代码是(以防以后更改:
$webClient = New-Object System.Net.WebClient
$webClient.Credentials = New-Object System.Net.Networkcredential($username, $password)
Write-Output $('Downloading' + $url + '…')
$webClient.DownloadFile($url, $zipFilePath)
于 2013-10-17T16:18:21.517 回答
0
我在没有 wget 的情况下使用类似的方式从我们公司的构建服务器中获取工件
$packageName = 'mycompanypackage'
$installerType = 'exe'
$username = 'chocolatey'
$password = '************'
$url = 'http://bamboo.mycompany.com/browse/DP-RS/latestSuccessful/artifact/JOB1/Setup/setup.exe'
$downloadFile = $url.Substring($url.LastIndexOf("/") + 1)
$url = $url+'?os_authType=basic'
$url64 = $url
$silentArgs = '/VERYSILENT /NORESTART /SUPPRESSMSGBOXES'
if (Test-Path "$downloadFile") {Remove-Item "$downloadFile"}
$webclient = new-object System.Net.WebClient
$credCache = new-object System.Net.CredentialCache
$creds = new-object System.Net.NetworkCredential($username, $password)
$credCache.Add($url, "Basic", $creds)
$webclient.Credentials = $credCache
$webclient.DownloadFile($url, $downloadFile)
Install-ChocolateyInstallPackage "$packageName" "$installerType" "$silentArgs" "$downloadFile"
于 2014-01-23T12:51:25.910 回答