File and FTP Interfaces

Sending files via FTP, FTPS (SSL/TLS)

Say you have the means of getting the path to an image file in your file system. Here is a sample script for a “To Translator” component, showing how you can use the net api to upload that file to a server via FTP/FTPS/SFTP:

-- The main function is the first function called from Iguana.
-- The Data argument will contain the message to be processed.
function main(FileId)
   local FileName = 'Images/'..FileId..'.tiff'

   local ImageFile = io.open(FileName)
   if not ImageFile then
      -- TODO make an email notification rule that sends emails
      -- whenever a log message starting with
      -- 'Image file does not exist' is found.
      print('Image file does not exist: "'..FileName..'".')
      return
   else
      ImageFile:close()
   end

   -- set up the connection and send the file
   local Ftp = net.ftp.init{server='192.168.0.100',username='fred',password='secret'}
   Ftp:put{local_path=FileName,remote_path='/ScanImages/'..FileId..'.tiff'}
end

In this example, I’ve just constructed the path from the ID that gets passed into the main function. This ID is produced from a “From Translator” component (see Polling a database, and generating CSV files). Note the “TODO” comment – you can set up an Iguana email notification rule to send out an email when a specific problem is encountered.

Note: FTPS/SFTP are also supported, see the api documentation for details.

For more information regarding “Details on Server SSL Certificates”, please refer to: http://curl.haxx.se/docs/sslcerts.html