Sample code for 30+ languages & platforms
PowerBuilder

SCP Download Text File to String Variable

See more SCP Examples

Downloads a file using the SCP protocol (Secure Copy Protocol over SSH), from a specific remote directory located on the SSH server directly into a string variable.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Ssh
string ls_Hostname
integer li_Port
oleobject loo_Scp
string ls_RemotePath
string ls_Charset
string ls_FileContents

li_Success = 0

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Ssh = create oleobject
li_rc = loo_Ssh.ConnectToNewObject("Chilkat.Ssh")
if li_rc < 0 then
    destroy loo_Ssh
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Hostname may be an IP address or hostname:
ls_Hostname = "www.some-ssh-server.com"
li_Port = 22

// Connect to an SSH server:
li_Success = loo_Ssh.Connect(ls_Hostname,li_Port)
if li_Success <> 1 then
    Write-Debug loo_Ssh.LastErrorText
    destroy loo_Ssh
    return
end if

// Wait a max of 5 seconds when reading responses..
loo_Ssh.IdleTimeoutMs = 5000

// Authenticate using login/password:
li_Success = loo_Ssh.AuthenticatePw("myLogin","myPassword")
if li_Success <> 1 then
    Write-Debug loo_Ssh.LastErrorText
    destroy loo_Ssh
    return
end if

// Once the SSH object is connected and authenticated, we use it
// in our SCP object.
loo_Scp = create oleobject
li_rc = loo_Scp.ConnectToNewObject("Chilkat.Scp")

li_Success = loo_Scp.UseSsh(loo_Ssh)
if li_Success <> 1 then
    Write-Debug loo_Scp.LastErrorText
    destroy loo_Ssh
    destroy loo_Scp
    return
end if

// This downloads a file from the "repositor/xml/" subdirectory (relative to the SSH user account's HOME directory).  
ls_RemotePath = "repository/xml/hamlet.xml"

// The byte representation of the remote text file (i.e. the charset) must be
// indicated to allow the receiving software to correctly interpret the incoming
// bytes as the correct chars.
// See https://www.chilkatsoft.com/p/p_463.asp for a list of valid charset names.
ls_Charset = "utf-8"

ls_FileContents = loo_Scp.DownloadString(ls_RemotePath,ls_Charset)
if loo_Scp.LastMethodSuccess <> 1 then
    Write-Debug loo_Scp.LastErrorText
    destroy loo_Ssh
    destroy loo_Scp
    return
end if

Write-Debug "Received file:"
Write-Debug ls_FileContents

Write-Debug "SCP download string success."

// Disconnect
loo_Ssh.Disconnect()


destroy loo_Ssh
destroy loo_Scp