PowerBuilder
PowerBuilder
SFTP Upload and Download to a StringBuilder Object
See more SFTP Examples
Demonstrates how to SFTP upload from a Chilkat StringBuilder object, and download into a StringBuilder object.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Sftp
integer li_Port
oleobject loo_SbA
integer li_BIncludeBOM
string ls_RemotePath
oleobject loo_SbB
integer li_BCaseSensitive
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Sftp = create oleobject
li_rc = loo_Sftp.ConnectToNewObject("Chilkat.SFtp")
if li_rc < 0 then
destroy loo_Sftp
MessageBox("Error","Connecting to COM object failed")
return
end if
// Set some timeouts, in milliseconds:
loo_Sftp.ConnectTimeoutMs = 5000
loo_Sftp.IdleTimeoutMs = 10000
// Connect to the SSH server and then authenticate.
li_Port = 22
li_Success = loo_Sftp.Connect("MY-SSH-SERVER-DOMAIN-OR-IP",li_Port)
if li_Success = 1 then
li_Success = loo_Sftp.AuthenticatePw("MY-SSH-LOGIN","MY-SSH-PASSWORD")
if li_Success = 1 then
li_Success = loo_Sftp.InitializeSftp()
end if
end if
if li_Success <> 1 then
Write-Debug loo_Sftp.LastErrorText
destroy loo_Sftp
return
end if
loo_SbA = create oleobject
li_rc = loo_SbA.ConnectToNewObject("Chilkat.StringBuilder")
loo_SbA.LoadFile("qa_data/hamlet.xml","utf-8")
// Upload the contents of sbA to the SSH/SFTP server.
li_BIncludeBOM = 0
ls_RemotePath = "sftpTesting/hamlet.xml"
li_Success = loo_Sftp.UploadSb(loo_SbA,ls_RemotePath,"utf-8",li_BIncludeBOM)
if li_Success <> 1 then
Write-Debug loo_Sftp.LastErrorText
destroy loo_Sftp
destroy loo_SbA
return
end if
// Download the file..
loo_SbB = create oleobject
li_rc = loo_SbB.ConnectToNewObject("Chilkat.StringBuilder")
li_Success = loo_Sftp.DownloadSb(ls_RemotePath,"utf-8",loo_SbB)
if li_Success <> 1 then
Write-Debug loo_Sftp.LastErrorText
destroy loo_Sftp
destroy loo_SbA
destroy loo_SbB
return
end if
// Verify that sbA and sbB have the exact same contents.
Write-Debug "size of sbA: " + string(loo_SbA.Length)
li_BCaseSensitive = 1
if loo_SbA.ContentsEqualSb(loo_SbB,li_BCaseSensitive) = 1 then
Write-Debug "Contents are equal. Success."
else
Write-Debug "Contents are NOT equal. Failed."
end if
loo_Sftp.Disconnect()
destroy loo_Sftp
destroy loo_SbA
destroy loo_SbB