PowerBuilder
PowerBuilder
Setting Environment Variables for SCP Transfers
See more SCP Examples
Demonstrates how to set remote environment variables for an SCP transfer.Note 1: This example requires Chilkat v9.5.0.79 or greater.
Note 2: Setting environment variables for SCP is only supported by some SSH servers.
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Ssh
oleobject loo_Scp
oleobject loo_JsonEnvVars
string ls_StrEnvVars
string ls_RemotePath
string ls_LocalPath
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
// First connect to an SSH server.
li_Success = loo_Ssh.Connect("example.com",22)
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..
li_Success = loo_Ssh.AuthenticatePw("myLogin","myPassword")
if li_Success <> 1 then
Write-Debug loo_Ssh.LastErrorText
destroy loo_Ssh
return
end if
// After the SSH object is connected and authenticated, we use it
// as the underlying transport 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
// Specify the environment variables to be set in JSON as follows.
// This example sets two environment variables. One is named "LCS_PASSWORD" and the other "MY_TEST_NAME".
loo_JsonEnvVars = create oleobject
li_rc = loo_JsonEnvVars.ConnectToNewObject("Chilkat.JsonObject")
loo_JsonEnvVars.EmitCompact = 0
loo_JsonEnvVars.UpdateString("LCS_PASSWORD","secret")
loo_JsonEnvVars.UpdateString("MY_TEST_NAME","abc")
ls_StrEnvVars = loo_JsonEnvVars.Emit()
Write-Debug ls_StrEnvVars
// Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
// prior to doing the upload or download.
loo_Scp.SendEnv = ls_StrEnvVars
// Do the upload..
ls_RemotePath = "starfish.jpg"
ls_LocalPath = "qa_data/jpg/starfish.jpg"
li_Success = loo_Scp.UploadFile(ls_LocalPath,ls_RemotePath)
if li_Success <> 1 then
Write-Debug loo_Scp.LastErrorText
destroy loo_Ssh
destroy loo_Scp
destroy loo_JsonEnvVars
return
end if
Write-Debug "SCP upload file success."
// Disconnect
loo_Ssh.Disconnect()
destroy loo_Ssh
destroy loo_Scp
destroy loo_JsonEnvVars