Ruby
Ruby
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 Ruby Downloads
require 'chilkat'
success = false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
ssh = Chilkat::CkSsh.new()
# First connect to an SSH server.
success = ssh.Connect("example.com",22)
if (success != true)
print ssh.lastErrorText() + "\n";
exit
end
# Wait a max of 5 seconds when reading responses..
ssh.put_IdleTimeoutMs(5000)
# Authenticate..
success = ssh.AuthenticatePw("myLogin","myPassword")
if (success != true)
print ssh.lastErrorText() + "\n";
exit
end
# After the SSH object is connected and authenticated, we use it
# as the underlying transport in our SCP object.
scp = Chilkat::CkScp.new()
success = scp.UseSsh(ssh)
if (success != true)
print scp.lastErrorText() + "\n";
exit
end
# 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".
jsonEnvVars = Chilkat::CkJsonObject.new()
jsonEnvVars.put_EmitCompact(false)
jsonEnvVars.UpdateString("LCS_PASSWORD","secret")
jsonEnvVars.UpdateString("MY_TEST_NAME","abc")
strEnvVars = jsonEnvVars.emit()
print strEnvVars + "\n";
# Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
# prior to doing the upload or download.
scp.put_SendEnv(strEnvVars)
# Do the upload..
remotePath = "starfish.jpg"
localPath = "qa_data/jpg/starfish.jpg"
success = scp.UploadFile(localPath,remotePath)
if (success != true)
print scp.lastErrorText() + "\n";
exit
end
print "SCP upload file success." + "\n";
# Disconnect
ssh.Disconnect()