Sample code for 30+ languages & platforms
Go

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

Go
    success := false

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

    ssh := chilkat.NewSsh()

    // First connect to an SSH server.
    success = ssh.Connect("example.com",22)
    if success != true {
        fmt.Println(ssh.LastErrorText())
        ssh.DisposeSsh()
        return
    }

    // Wait a max of 5 seconds when reading responses..
    ssh.SetIdleTimeoutMs(5000)

    // Authenticate..
    success = ssh.AuthenticatePw("myLogin","myPassword")
    if success != true {
        fmt.Println(ssh.LastErrorText())
        ssh.DisposeSsh()
        return
    }

    // After the SSH object is connected and authenticated, we use it
    // as the underlying transport in our SCP object.
    scp := chilkat.NewScp()

    success = scp.UseSsh(ssh)
    if success != true {
        fmt.Println(scp.LastErrorText())
        ssh.DisposeSsh()
        scp.DisposeScp()
        return
    }

    // 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".
    jsonEnvVars := chilkat.NewJsonObject()
    jsonEnvVars.SetEmitCompact(false)
    jsonEnvVars.UpdateString("LCS_PASSWORD","secret")
    jsonEnvVars.UpdateString("MY_TEST_NAME","abc")
    strEnvVars := jsonEnvVars.Emit()

    fmt.Println(*strEnvVars)

    // Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
    // prior to doing the upload or download.
    scp.SetSendEnv(*strEnvVars)

    // Do the upload..
    remotePath := "starfish.jpg"
    localPath := "qa_data/jpg/starfish.jpg"
    success = scp.UploadFile(localPath,remotePath)
    if success != true {
        fmt.Println(scp.LastErrorText())
        ssh.DisposeSsh()
        scp.DisposeScp()
        jsonEnvVars.DisposeJsonObject()
        return
    }

    fmt.Println("SCP upload file success.")

    // Disconnect
    ssh.Disconnect()

    ssh.DisposeSsh()
    scp.DisposeScp()
    jsonEnvVars.DisposeJsonObject()