Sample code for 30+ languages & platforms
Swift

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

Swift

func chilkatTest() {
    var success: Bool = false

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

    let ssh = CkoSsh()!

    // First connect to an SSH server.
    success = ssh.connect(hostname: "example.com", port: 22)
    if success != true {
        print("\(ssh.lastErrorText!)")
        return
    }

    // Wait a max of 5 seconds when reading responses..
    ssh.idleTimeoutMs = 5000

    // Authenticate..
    success = ssh.authenticatePw(login: "myLogin", password: "myPassword")
    if success != true {
        print("\(ssh.lastErrorText!)")
        return
    }

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

    success = scp.useSsh(sshConnection: ssh)
    if success != true {
        print("\(scp.lastErrorText!)")
        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".
    let jsonEnvVars = CkoJsonObject()!
    jsonEnvVars.emitCompact = false
    jsonEnvVars.updateString(jsonPath: "LCS_PASSWORD", value: "secret")
    jsonEnvVars.updateString(jsonPath: "MY_TEST_NAME", value: "abc")
    var strEnvVars: String? = jsonEnvVars.emit()

    print("\(strEnvVars!)")

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

    // Do the upload..
    var remotePath: String? = "starfish.jpg"
    var localPath: String? = "qa_data/jpg/starfish.jpg"
    success = scp.uploadFile(localPath: localPath, remotePath: remotePath)
    if success != true {
        print("\(scp.lastErrorText!)")
        return
    }

    print("SCP upload file success.")

    // Disconnect
    ssh.disconnect()

}