Rust
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
// 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();