Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSsh
LOCAL loScp
LOCAL loJsonEnvVars
LOCAL lcStrEnvVars
LOCAL lcRemotePath
LOCAL lcLocalPath

lnSuccess = 0

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

loSsh = CreateObject('Chilkat.Ssh')

* First connect to an SSH server.
lnSuccess = loSsh.Connect("example.com",22)
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

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

* Authenticate..
lnSuccess = loSsh.AuthenticatePw("myLogin","myPassword")
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

* After the SSH object is connected and authenticated, we use it
* as the underlying transport in our SCP object.
loScp = CreateObject('Chilkat.Scp')

lnSuccess = loScp.UseSsh(loSsh)
IF (lnSuccess <> 1) THEN
    ? loScp.LastErrorText
    RELEASE loSsh
    RELEASE loScp
    CANCEL
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('Chilkat.JsonObject')
loJsonEnvVars.EmitCompact = 0
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"
lnSuccess = loScp.UploadFile(lcLocalPath,lcRemotePath)
IF (lnSuccess <> 1) THEN
    ? loScp.LastErrorText
    RELEASE loSsh
    RELEASE loScp
    RELEASE loJsonEnvVars
    CANCEL
ENDIF

? "SCP upload file success."

* Disconnect
loSsh.Disconnect()

RELEASE loSsh
RELEASE loScp
RELEASE loJsonEnvVars