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.