Tcl
Tcl
SFTP Upload and Download to a BinData Object
See more SFTP Examples
Demonstrates how to SFTP upload from a BinData object, and download into a BinData object.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set sftp [new_CkSFtp]
# Set some timeouts, in milliseconds:
CkSFtp_put_ConnectTimeoutMs $sftp 5000
CkSFtp_put_IdleTimeoutMs $sftp 10000
# Connect to the SSH server and then authenticate.
set port 22
set success [CkSFtp_Connect $sftp "MY-SSH-SERVER-DOMAIN-OR-IP" $port]
if {$success == 1} then {
set success [CkSFtp_AuthenticatePw $sftp "MY-SSH-LOGIN" "MY-SSH-PASSWORD"]
if {$success == 1} then {
set success [CkSFtp_InitializeSftp $sftp]
}
}
if {$success != 1} then {
puts [CkSFtp_lastErrorText $sftp]
delete_CkSFtp $sftp
exit
}
set bdA [new_CkBinData]
CkBinData_LoadFile $bdA "qa_data/jpg/penguins.jpg"
# Upload the contents of bdA to the SSH/SFTP server.
set remotePath "sftpTesting/penguins.jpg"
set success [CkSFtp_UploadBd $sftp $bdA $remotePath]
if {$success != 1} then {
puts [CkSFtp_lastErrorText $sftp]
delete_CkSFtp $sftp
delete_CkBinData $bdA
exit
}
# Download the file..
set bdB [new_CkBinData]
set success [CkSFtp_DownloadBd $sftp $remotePath $bdB]
if {$success != 1} then {
puts [CkSFtp_lastErrorText $sftp]
delete_CkSFtp $sftp
delete_CkBinData $bdA
delete_CkBinData $bdB
exit
}
# Verify that bdA and bdB have the exact same contents.
puts "size of bdA: [CkBinData_get_NumBytes $bdA]"
if {[CkBinData_ContentsEqual $bdA $bdB] == 1} then {
puts "Contents are equal. Success."
} else {
puts "Contents are NOT equal. Failed."
}
CkSFtp_Disconnect $sftp
delete_CkSFtp $sftp
delete_CkBinData $bdA
delete_CkBinData $bdB