Ruby
Ruby
FTP Download Binary File to a Stream
See more FTP Examples
Demonstrates how to FTP download a binary file to a Chilkat stream.Note: This example requires Chilkat v9.5.0.67 or greater.
Chilkat Ruby Downloads
require 'chilkat'
success = false
# This example assumes the Chilkat FTP2 API to have been previously unlocked.
# See FTP2 Unlock Sample for sample code.
ftp = Chilkat::CkFtp2.new()
ftp.put_Hostname("www.my-ftp-server.com")
ftp.put_Username("mFtpLogin")
ftp.put_Password("myFtpPassword")
ftp.put_AuthTls(true)
ftp.put_Passive(true)
# Connect and login to the FTP server using TLS.
success = ftp.Connect()
if (success != true)
print ftp.lastErrorText() + "\n";
exit
end
# We'll read the incoming data chunk-by-chunk and write to an output file.
fac = Chilkat::CkFileAccess.new()
success = fac.OpenForWrite("qa_output/penguins2.jpg")
if (success != true)
print fac.lastErrorText() + "\n";
exit
end
streamObj = Chilkat::CkStream.new()
# Create a task to do the FTP download.
# t is a CkTask
t = ftp.GetFileToStreamAsync("penguins2.jpg",streamObj)
if (ftp.get_LastMethodSuccess() != true)
print ftp.lastErrorText() + "\n";
exit
end
# Start the task in a background thread.
t.Run()
bd = Chilkat::CkBinData.new()
while streamObj.get_EndOfStream() != true
# Get the next chunk of JPG bytes.
streamObj.ReadBd(bd)
# Do something with it..
# In this simple example, we'll just write to the file.
fac.FileWriteBd(bd,0,0)
# Clear for the next read.
bd.Clear()
end
fac.FileClose()
print "Success." + "\n";