Я пытаюсь загрузить файл из репозитория JFrog с помощью PowerShell, но не могу заставить его работать.
Это ошибка, которую я получаю:
Exception calling "DownloadFile" with "2" argument(s): "The underlying connection was closed: An unexpected error
occurred on a send."
At C:\Users\jelte\Documents\myproject\downloadExecutables1.ps1:16 char:1
+ $req.DownloadFile('https://myrepo.jfrog.io/myproject/libs-release-loca ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [],
MethodInvocationException
Код, который я использую:
$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 для проверки того, что это что-то еще, также работает.