PowerShell Upload und Download mit Invoke-Webrequest

QRS verwendet NextCloud WebDAV als Basis für die Dateien

Automatisierter Upload und Download der Datein erfolgt mit Skripts in Windows PowerShell

Neben cURL verwenden die Skripts auch Invoke-Webrequest direkt

Worum geht's?

Die Einbindung von Nexcloud-Verzeichnissen als logische Laufwerke in Windows ist nicht zuverlässig. Die HTTP-Methoden, welche cURL zur Verfügung stellt funktionieren zuverlässig und sind für die QRS-Datenmengen ausreichend schnell. Um cURL in Windows zu verwenden, muss dem Skript ein Pfad zum Programm mitgegeben werden. Das Cmdlet Invoke-Webrequest leistet das gleiche ohne diese Erfordernis.

Download

Für einen Download ist zunächst der Pfad zur Datei in der Cloud aufzubauen:

$URI = "https://ppp.woelkli.com/remote.php/dav/files/benutzer[/unterverzeichnis]/datei"

Die Credentials fürs Login werden über den Konstruktor New-Object im Parameter -ArugmentList ans neue PSCredential-Objekt übergeben und dem Invoke-Webrequest mitgegeben.

$PSC = New-Object System.Management.Automation.PSCredential -ArgumentList($Usr, $PwS)

Um die unnötige Analyse des heruntergeladenen Inhalts zu unterdrücken, wird der Parameter -UseBasicParsing mitgegeben.

Der Download von Dateien in ein Zielverzeichnis $Dst ist intuitiv:

Invoke-Webrequest -UseBasicParsing -Uri $URI -Credential $PSC -OutFile $Dst

Upload

Für den Upload muss die Methode zur Befehlsverarbeitung an den Webserver angegeben werden. Für Uploads ist dies PUT als Wert für den Parameter -Method. Zur Angabe der lokalen Datei wird der Parameter -InFile verwendet:

$WRS = Invoke-Webrequest -UseBasicParsing -URI $URI -Method PUT -Credential-PSC -InFile $Src

Das Cmdlet gibt ein Objekt des Typs WebResponse zurück, welches zwei Eigenschaften enthält, die den Status nach der Übertragung enthalten:

$WRS.StatusCode Werte für fehlerfreie Übertragung sind 201 (Created) und 204 (no content)

$WRS.StatusDescription enthält eine entsprechende Beschreibung des Status

 

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

Sei der erste der kommentiert
Top