Sample code for 30+ languages & platforms
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

Dart
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();
}