PureBasic
PureBasic
SCP Upload File
See more SCP Examples
Demonstrates how to upload a file using the SCP protocol (Secure Copy Protocol over SSH).Chilkat PureBasic Downloads
IncludeFile "CkSsh.pb"
IncludeFile "CkScp.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
ssh.i = CkSsh::ckCreate()
If ssh.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Connect to an SSH server:
hostname.s
port.i
; Hostname may be an IP address or hostname:
hostname = "www.some-ssh-server.com"
port = 22
success = CkSsh::ckConnect(ssh,hostname,port)
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; Wait a max of 5 seconds when reading responses..
CkSsh::setCkIdleTimeoutMs(ssh, 5000)
; Authenticate using login/password:
success = CkSsh::ckAuthenticatePw(ssh,"myLogin","myPassword")
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; Once the SSH object is connected and authenticated, we use it
; as the underlying transport in our SCP object.
scp.i = CkScp::ckCreate()
If scp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkScp::ckUseSsh(scp,ssh)
If success <> 1
Debug CkScp::ckLastErrorText(scp)
CkSsh::ckDispose(ssh)
CkScp::ckDispose(scp)
ProcedureReturn
EndIf
remotePath.s = "test.txt"
localPath.s = "/home/bob/test.txt"
success = CkScp::ckUploadFile(scp,localPath,remotePath)
If success <> 1
Debug CkScp::ckLastErrorText(scp)
CkSsh::ckDispose(ssh)
CkScp::ckDispose(scp)
ProcedureReturn
EndIf
Debug "SCP upload file success."
; Disconnect
CkSsh::ckDisconnect(ssh)
CkSsh::ckDispose(ssh)
CkScp::ckDispose(scp)
ProcedureReturn
EndProcedure