Swift
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
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()
}