Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

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

loSsh = createobject("CkSsh")

// First connect to an SSH server.
llSuccess = loSsh.Connect("example.com",22)
if (llSuccess <> .T.) then
    ? loSsh.LastErrorText
    release loSsh
    return
endif

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

// Authenticate..
llSuccess = loSsh.AuthenticatePw("myLogin","myPassword")
if (llSuccess <> .T.) then
    ? loSsh.LastErrorText
    release loSsh
    return
endif

// After the SSH object is connected and authenticated, we use it
// as the underlying transport in our SCP object.
loScp = createobject("CkScp")

llSuccess = loScp.UseSsh(loSsh)
if (llSuccess <> .T.) then
    ? loScp.LastErrorText
    release loSsh
    release loScp
    return
endif

// 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".
loJsonEnvVars = createobject("CkJsonObject")
loJsonEnvVars.EmitCompact = .F.
loJsonEnvVars.UpdateString("LCS_PASSWORD","secret")
loJsonEnvVars.UpdateString("MY_TEST_NAME","abc")
lcStrEnvVars = loJsonEnvVars.Emit()

? lcStrEnvVars

// Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
// prior to doing the upload or download.
loScp.SendEnv = lcStrEnvVars

// Do the upload..
lcRemotePath = "starfish.jpg"
lcLocalPath = "qa_data/jpg/starfish.jpg"
llSuccess = loScp.UploadFile(lcLocalPath,lcRemotePath)
if (llSuccess <> .T.) then
    ? loScp.LastErrorText
    release loSsh
    release loScp
    release loJsonEnvVars
    return
endif

? "SCP upload file success."

// Disconnect
loSsh.Disconnect()


release loSsh
release loScp
release loJsonEnvVars