%20zum%20Herunterladen%20der%20Datei%20von%20einem%20authentifizierten%20Jenkins-Server.png)
Mir ist bekannt, dass ich den folgenden Befehl verwende, um Dateien vom Jenkins-Server herunterzuladen, wenn der Arbeitsbereich anonymen Zugriff hat:
bitsadmin.exe /transfer replica /priority FOREGROUND http://1.1.1.1:8080/job/dump_data/ws/dump_data.zip %WORKSPACE%\dump_data.zip
Aber was ist, wenn der Jenkins-Server per Benutzername/Passwort authentifiziert wird?
BEARBEITEN: /setcredentials funktioniert, aber ein Problem ist, dass ich nur /create, /addfile, /resume und dann /complete verwenden kann. Wie kann ich warten, bis die Übertragung abgeschlossen ist, und dann mit dem Batch-Skript fortfahren?
BEARBEITEN: Weitere Tests zeigen, dass /setcredential nicht funktioniert hat. Der vorherige Test zeigt, dass es funktioniert, weil mein Jenkins zu diesem Zeitpunkt anonymen Zugriff erlaubt. Ich habe das Paket erfasst, als ich den Bitadmin verwendet habe. Es zeigt, dass die HTTP-Anforderung HEAD ohne Anmeldeinformationen ist. Wenn ich curl-win zum Herunterladen verwende, ist die HTTP-Anforderung GET mit Benutzername und Passwort für die Basisauthentifizierung.
Antwort1
Wenn Sie Anmeldeinformationen für einen BITS-Job festlegen müssen, verwenden Sie den /setcredentials
Schalter.
/SETCREDENTIALS job target scheme username password
Adds credentials to a job.
target may be either SERVER or PROXY
scheme may be BASIC, DIGEST, NTLM, NEGOTIATE, or PASSPORT.
Die hervorragende ss64-Befehlsreferenz für BITSadmin finden Sie hier.
Antwort2
Hier ist ein .bat
Skript zur entsprechenden Frage:
bitsadmin /Create DownloadDumpData
bitsadmin /SetCredentials DownloadDumpData target scheme username password
bitsadmin /AddFile DownloadDumpData http://1.1.1.1:8080/job/dump_data/ws/dump_data.zip %WORKSPACE%\dump_data.zip
bitsadmin /SetPriority DownloadDumpData "FOREGROUND"
bitsadmin /Resume DownloadDumpData
:WAIT_DUMP_DATA_DOWNLOAD_LOOP_START
@rem state thanks to http://ss64.com/nt/bitsadmin.html & http://serverfault.com/a/646948/93281
call bitsadmin /info DownloadDumpData /verbose | find "STATE: TRANSFERRED"
if %ERRORLEVEL% equ 0 goto WAIT_DUMP_DATA_DOWNLOAD_LOOP_END
call bitsadmin /RawReturn /GetBytesTransferred DownloadDumpData
@rem sleep thanks to http://stackoverflow.com/a/1672375/535203
timeout 2
goto WAIT_DUMP_DATA_DOWNLOAD_LOOP_START
:WAIT_DUMP_DATA_DOWNLOAD_LOOP_END
call bitsadmin /Complete DownloadDumpData