【发布时间】:2018-12-11 09:31:06
【问题描述】:
我正在尝试使用 PowerShell 从我的 JFrog 存储库中下载一个文件,但我无法让它工作。
这是我得到的错误:
使用“2”参数调用“DownloadFile”的异常:“底层连接已关闭:意外错误 发送时发生。” 在 C:\Users\jelte\Documents\myproject\downloadExecutables1.ps1:16 char:1 + $req.DownloadFile('https://myrepo.jfrog.io/myproject/libs-release-loca ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : 未指定: (:) [], 方法调用异常我使用的代码:
$usernameVar = "JFROG_USERNAME"
$username = (get-item env:$usernameVar).Value
$passwordVar = "JFROG_PASSWORD"
$password = (get-item env:$passwordVar).Value
$auth = 'Basic ' + [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+":"+$password))
$req = New-Object System.Net.WebClient
$req.Headers.Add('Authorization', $auth)
$installersFolder = $PSScriptRoot + '\prerequisites\executables'
If(!(test-path $installersFolder))
{
New-Item -ItemType Directory -Force -Path $installersFolder
}
$req.DownloadFile('https://myrepo.jfrog.io/myproject/libs-release-local/binary/com/targetexecutable/9.3.240/executable-9.3.240.exe', $installersFolder + '\executable-9.3.240.exe')
我尝试过的事情:
- 从不安全的服务器下载文件,可以。我怀疑基本身份验证出了点问题。
- 我检查了用户名和密码是否填写,我还检查了base64哈希是否正确。
- 将 PowerShell 置于跟踪模式,这样我就可以得到更清晰的错误,但运气不好。 (为什么这些错误如此不清楚?)
- 使用
Invoke-Webrequest,这可行,但速度极慢。 - 使用 cURL 检查它是否是其他东西,这也有效。
【问题讨论】:
-
您使用的代码正是我下载授权文件所需的代码。谢谢!
标签: powershell