Dart
Dart
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 Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final ssh = CkSsh();
// First connect to an SSH server.
try {
ssh.connect('example.com', 22);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Wait a max of 5 seconds when reading responses..
ssh.idleTimeoutMs = 5000;
// Authenticate..
try {
ssh.authenticatePw('myLogin', 'myPassword');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// After the SSH object is connected and authenticated, we use it
// as the underlying transport in our SCP object.
final scp = CkScp();
try {
scp.useSsh(ssh);
} on ChilkatException catch (e) {
print(e.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".
final jsonEnvVars = CkJsonObject();
jsonEnvVars.emitCompact = false;
jsonEnvVars.updateString('LCS_PASSWORD', 'secret');
jsonEnvVars.updateString('MY_TEST_NAME', 'abc');
final strEnvVars = 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..
final remotePath = 'starfish.jpg';
final localPath = 'qa_data/jpg/starfish.jpg';
try {
scp.uploadFile(localPath, remotePath);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
print('SCP upload file success.');
// Disconnect
ssh.disconnect();
}