Invoke-SftpUpload #
ÜBERSICHT #
Lädt Dateien über SFTP für einen definierten Partner hoch und führt lokale Nachbearbeitungen aus.
SYNTAX #
Invoke-SftpUpload [-Partner] <hashtable> [[-TechnicalEmails] <string>] [-PartnerName] <string>
[-DataPath] <string> [[-LogFile] <string>]
BESCHREIBUNG #
Die Funktion ‘Invoke-SftpUpload’ führt einen SFTP-Upload durch, basierend auf den Angaben eines Partnerobjekts. Es werden alle passenden Dateien aus einem lokalen Verzeichnis gemäß definierter Dateimaske ausgewählt, hochgeladen und optional anschließend gelöscht, verschoben oder umbenannt (postLocalAction). Der Upload erfolgt entweder durch direkte Übergabe des Partnerobjekts oder über den Namen in einer JSON-Datenbank. Die Funktion protokolliert alle Aktionen, zählt Erfolge/Fehler, und gibt ein strukturiertes Ergebnis zurück.
PARAMETER #
-Partner #
Type: hashtable
Ein Hashtable mit allen Verbindungs- und Konfigurationsdaten des Partners (Pflicht bei ParameterSet ‘ByPartner’).
-TechnicalEmails #
Type: string
Default: $null
Optionale Empfänger für technische Fehlermeldungen (z. B. bei Uploadfehlern).
-PartnerName #
Type: string
Der Name des Partners, dessen Konfiguration aus der JSON-Datenbank geladen wird (Pflicht bei ParameterSet ‘ByName’).
-DataPath #
Type: string
Pfad zur JSON-Datenbank, aus der Partnerinformationen gelesen werden (Pflicht bei ParameterSet ‘ByName’).
-LogFile #
Type: string
Default: $null
Optionaler Pfad zu einer Logdatei, in die Fehlermeldungen zusätzlich geschrieben werden sollen.
AUSGABEN #
Ein [pscustomobject] mit folgenden Eigenschaften:
- PartnerName - Success (bool) - Total (Anzahl gefundener Dateien) - Succeeded (Anzahl erfolgreicher Uploads) - Failed (Anzahl Fehler) - Skipped (Anzahl übersprungener Dateien) - Errors (Liste von Fehlermeldungen) - TransferedFiles (Liste erfolgreich hochgeladener Dateinamen)
BEISPIELE #
# Upload via Partnerobjekt
$partner = @{ partnerName = 'KundeX'; connection = @{ sftp = @{ server = 'host'; user = 'xyz' } }; localFolders = @{ uploadPath = 'C:\Daten' } }
Invoke-SftpUpload -Partner $partner
# Upload per Partnername (aus JSON-Datenbank)
Invoke-SftpUpload -PartnerName 'KundeX' -DataPath 'C:\Config\partner.json'