Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Lianja) SCP Sync Tree UploadSynchronize local and remote directory trees by uploading newer or missing files to the remote server.
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loSsh = createobject("CkSsh") // Hostname may be an IP address or hostname: lcHostname = "www.some-ssh-server.com" lnPort = 22 // Connect to an SSH server: llSuccess = loSsh.Connect(lcHostname,lnPort) if (llSuccess <> .T.) then ? loSsh.LastErrorText release loSsh return endif // Wait a max of 5 seconds when reading responses.. loSsh.IdleTimeoutMs = 5000 // Authenticate using login/password: llSuccess = loSsh.AuthenticatePw("myLogin","myPassword") if (llSuccess <> .T.) then ? loSsh.LastErrorText release loSsh return endif // Once the SSH object is connected and authenticated, we use it // in our SCP object. loScp = createobject("CkScp") llSuccess = loScp.UseSsh(loSsh) if (llSuccess <> .T.) then ? loScp.LastErrorText release loSsh release loScp return endif // The remoteRoot is relative to the HOME directory of the SSH user account. lcRemoteRoot = "workspace/projectB" lcLocalRoot = "c:/aaworkarea/scp/workspace/projectB" // Upload synchronization modes: // mode=0: Upload all files // mode=1: Upload all files that do not exist on the FTP server. // mode=2: Upload newer or non-existant files. // mode=3: Upload only newer files. If a file does not already exist on the FTP server, it is not uploaded. // mode=4: transfer missing files or files with size differences. // mode=5: same as mode 4, but also newer files. // Additional files and directores can be excluded by setting the SyncMustNotMatch property. // The SyncMustNotMatch patterns apply only to the final filename or directory part of a path. // If a directory matches, then it will not be traversed in a recursive traversal. // loScp.SyncMustNotMatch = "*.o;*.obj;*.log; temp" // The SyncMustMatch property can be set to restrict the files uploaded to only those // matching at least one pattern in a set. loScp.SyncMustMatch = "*.cpp; *.h" // Do the recursive sync to upload newer or non-existant files: llBRecurse = .T. lnMode = 2 llSuccess = loScp.SyncTreeUpload(lcLocalRoot,lcRemoteRoot,lnMode,llBRecurse) if (llSuccess <> .T.) then ? loScp.LastErrorText release loSsh release loScp return endif // The files actually uploaded can be examined in the SyncedFiles property. // It is a string property that contains the relative path, one per line, of each // file uploaded. ? "Files uploaded: " ? loScp.SyncedFiles ? "----" ? "SCP sync upload success." // Disconnect loSsh.Disconnect() release loSsh release loScp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.