So verwenden Sie bitsadmin.exe (Windows) zum Herunterladen der Datei von einem authentifizierten Jenkins-Server

So verwenden Sie bitsadmin.exe (Windows) zum Herunterladen der Datei von einem authentifizierten Jenkins-Server

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 /setcredentialsSchalter.

 /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 .batSkript 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

verwandte Informationen