Skip to main content
Skip table of contents

TbeCbSFTP

TbeCbSFTP

Klasse zur Kommunikation mit SFTP-Diensten

SFTP ist ein File-Transfer-Protokoll, welches SSH und TCP/IP nutzt.

Hinweis

Remote Pfade und Remote Filename müssen als Verzeichnis-Separator den Schrägstrich und nicht den Backslash nutzen, z.B: user/sub/date/datei.txt
Falls eine Anmeldung mit einer Privat-Schlüssel-Datei erfolgen soll, existiert die Methode AuthenticateByFile(), die auch einen eigenen Parameter für ein Kennwort besitzt. Falls jedoch die Passwort-Eigenschaft des Objekts gesetzt ist, wird ein vorheriger Aufruf der Funktion AuthenticateByFile() ignoriert.

Eigenschaften:



Eigenschaften




HostName:C


SFTP Server-Name: Angabe entweder IP-Adresse oder Domain-Name möglich.
z.B: 192.167.10.10 oder myserver.mydomain

Muss eingegeben werden.


Port:N


SFTP Server-PortDefault:

22


User:C


SFTP Benutzername

Password:C


SFTP Benutzer-Kennwort

KeyHash:C


Standardmäßig Hash von Privat-Schlüssel für Überprüfung.

Read-Only


Timeout:N


Timeout der TCP Verbindung in SekundenDefault:

15


KeepAlive:L


TCP "Keep-Alive" Pakete schickenDefault:

true


LoggingActive:L


Internes Logging einschalten. Log zu  LogText und FullLogText schreibenDefault:

false


LogText:O


Output Objekt TStrings, das speichert interne Logging-Output, falls es mit LoggingActive eingeschaltet wurde.

FullLogText:C


Output String, das speichert interne Logging-Output, falls es mit LoggingActive eingeschaltet wurde.

DirectoryList:O


Output Objekt TList, das speichert Ergebnis vom letzten Aufruf der OpenDirectory()


Verfügbare Ereignisse




OnValidateServerKey

Beim Validieren des SSH-Schlüssels des Servers



Funktionen und Methoden




AuthenticateByFile(aFileName:C, aPassword:C):C

Setzt die Authentifizierung mit Privat-Schlüssel-Datei an. Gibt MD5-Hash vom eingegebenen Privat-Schlüssel-Datei.> Pfad zur Privat-Schlüssel-Datei.
> Kennwort für Privat-SchlüsselFalls kein Kennwort gebraucht wird, um diese Datei zu lesen, benutzen Sie leer String


Connect()

Erstellt Verbindung um Eigenschaften


Disconnect()

Beendet Verbindung


OpenDirectory(aPath:C):A

Gibt ein Array aus, der die Namen, Größen und Daten der letzten Änderungen von die Dateien im Remote-Pfad beinhaltet.


RemoveFile(aFileName:C)

Löscht Remote-Datei


CreateDir(aDirName:C)

Erzeugt neue Remote-Verzeichnis


RemoveDir(aDirName:C, aRecursive:B)

Löscht Remote-Verzeichnis


RenameFile(aOldPath:C, aNewPath:C)

Verschiebung oder Umbenennung einem Remote-Datei oder einem Remote-Verzeichnis


DownloadFile(aRemoteFile:C, aLocalFile:C, aOverwrite:L)

Downloaded Remote-Datei zu Lokal-Datei, falls das Local-Datei existiert muss aOverwrite das Wert

true

haben



UploadFile(aLocalFile:C, aRemoteFile:C, aOverwrite:L)

Uploaded Lokal-Datei zu Remote-Datei, falls das Remote-Datei existiert muss aOverwrite das Wert

true

haben





Beispiel


CODE
|oSFTP, bUseKeyFile, aVerzeichnis, aFile|

oSFTP := CreateObject("TbeCbSFTP"),
oSFTP.HostName := '192.167.10.10',
oSFTP.Port     := 22,
oSFTP.User     := 'MyName',

if bUseKeyFile then
  oSFTP.AuthenticateByFile('Pfad_zu_privat_key\privat_file_name', 'KeyPassword'),
else
  oSFTP.Password := 'MyPassword',
endif,

function VerifyKey(oSender,aKeyHash,aValue),
  if aKeyHash = '01:23:45:67:89:ab:cd:ef:01:23:34:45:67:89:ab:cd:ef:01:23:34' then
    aValue := true,
  else
    Writeln('Unknwon server key: ' + aKeyHash),
  endif,
end,

AssignEvent(oSFTP,"OnValidateServerKey","VerifyKey"),

oSFTP.Connect(),

aVerzeichnis := oSFTP.OpenDirectory(""), // default Verzeichnis lesen
foreach aFile in aVerzeichnis do
  if Left(aFile[1],1) = '<' then
    Writeln('Directory Name: ' + aFile[1]),
  else
    Writeln('File Name: ' +  aFile[1] + ' Size: ' +Str(aFile[2]) + ' Datum der letzten Änderung: ' + DateTimeToStr(aFile[3])),
  endif
end,

oSFTP.Disconnect(),


Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.