Sample code for 30+ languages & platforms
Rust

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

Rust

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

let ssh = chilkat::Ssh::new();

// First connect to an SSH server.
if ssh.connect("example.com", 22).is_err() {
    println!("{}", ssh.last_error_text());
    return;
}

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

// Authenticate..
if ssh.authenticate_pw("myLogin", "myPassword").is_err() {
    println!("{}", ssh.last_error_text());
    return;
}

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

if scp.use_ssh(&ssh).is_err() {
    println!("{}", scp.last_error_text());
    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 json_env_vars = chilkat::JsonObject::new();
json_env_vars.set_emit_compact(false);
let _ = json_env_vars.update_string("LCS_PASSWORD", "secret");
let _ = json_env_vars.update_string("MY_TEST_NAME", "abc");
let str_env_vars = json_env_vars.emit().unwrap_or_default();

println!("{}", str_env_vars);

// Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
// prior to doing the upload or download.
scp.set_send_env(&str_env_vars);

// Do the upload..
let remote_path = "starfish.jpg".to_string();
let local_path = "qa_data/jpg/starfish.jpg".to_string();
if scp.upload_file(&local_path, &remote_path).is_err() {
    println!("{}", scp.last_error_text());
    return;
}

println!("SCP upload file success.");

// Disconnect
ssh.disconnect();