**************** FTPS Extender Version 44001 Released ***********

Started by td, July 18, 2024, 02:24:49 PM

Previous topic - Next topic

td

The FTPS extender provides WinBatch® scripts File Transport Protocol Secure functionality. FTPS uses command and data channel encryption to protect passwords and data during client/server file transfers.

It is a bit unusual but we decided to turn an internal-use extender into something that could be released to WinBatch users. The conversion mostly involved writing documentation and integrating the extender fully into the WinBatch/WinBatch Studio* environment.

Given its origins, the extender lacks the automagic features so popular with some and the documentation is a little basic. It has a collection of 13 functions that work more or less as their names would indicate.

The online version of the documentation can be found here:

FTPS Extender Docs
The extender table of contents appears when you click on the "show" link in the upper-left-hand corner.

Customers with a current license can download the extender here:

FTPS Extender Download Link

Or you can use the vcheck script.

* Some aspects of WinBatch Studio integration will not take effect until the next WinBatch+Compiler release but this does not limit the extender's functionality in any way.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

spl

Nice addition. Did notice
The FTPS extender cannot...
Provide upload or download progress information
Issue ad hoc FTP commands.
Transfer data using the SFTP protocol

bummer on lack of SFTP. I had gotten quite comfortable with WinSCP .NET uploads and downloads.

 
Stan - formerly stanl [ex-Pundit]

kdmoyers

This looks pretty cool Tony.  I have a business partner that publishes prices on an FTPS server, so I will use this if we hook up to get that data on the regular.  Thanks!!
 
((Around here on the LAN we use SFTP for simpler firewall config and no cert needed.))
The mind is everything; What you think, you become.

td

Quote from: spl on July 19, 2024, 07:47:15 AMNice addition. Did notice
The FTPS extender cannot...
Provide upload or download progress information
Issue ad hoc FTP commands.
Transfer data using the SFTP protocol

bummer on lack of SFTP. I had gotten quite comfortable with WinSCP .NET uploads and downloads.


As mentioned it is an internal use extender and ILC doesn't need SFTP.  If you like WinSCP .NET then you should use it. It did not match ILC's needs.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

td

Quote from: kdmoyers on July 19, 2024, 09:13:30 AMThis looks pretty cool Tony.  I have a business partner that publishes prices on an FTPS server, so I will use this if we hook up to get that data on the regular.  Thanks!!
 
((Around here on the LAN we use SFTP for simpler firewall config and no cert needed.))

Never needed SFTP because all ILC firewalls auto-configure for explicit FTPS when detected.  The SSH part of SFTP still needs a certificate from somewhere even if it is self-signed.

Should add that the remote FTP servers need the addition of a data port range as part of the FTP server configuration. It is just part of the FTP server service/daemon setup process. ILC's VPS server firewall, the VPS provider's firewall, and Cloudflare auto-configure for the port range.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

spl

Quote from: td on July 19, 2024, 09:23:52 AMIf you like WinSCP .NET then you should use it. It did not match ILC's needs.

Yep. Pick want you want to deal with and how to deal with...
Stan - formerly stanl [ex-Pundit]

td

We assumed when we decided to publish it that there wasn't much interest in FTP. If that was an erroneous assumption, we would consider adding SFTP to the extender. 
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

spl

NP. I did test the extender on the site in the code below. It supports (according to authors) both FTPS and SFTP. I tested the connection and file list for FTPS with both plain text and encrypted credentials based on code from another author. I then tested in both 32 and 64 bit with the Extender. I could connect with both but got a strange error when trying to list files. Then I switched the protocol to unencrypted and worked fine. The protocol for the server is, I believe, TLS12. You can comment/uncomment to test in the attached. Would there be a way to determine the configuration of an FTP server prior to connecting?
AddExtender('ilcfs44i.dll',0,'ilcfs64i.dll')
host = 'test.rebex.net'
port = 21
;port = 990
user = 'demo'
pwd  = 'password'

;no error on connect, but error on fsDirList
client = fsClientInit(host, port, user, pwd)

;comment above and uncomment and fsDirList returns files
;client = fsClientInit(host, port, user, pwd, @fsFTP)

dir = "pub/example"
list = fsDirList(client, dir, @fsList)
file = AskItemlist('Select a File', list, @lf, @sorted, @single)
Message('You Selected',file)
fsClientDelete(client)
Exit

Stan - formerly stanl [ex-Pundit]

spl

Correction to last post. The failure was on Win11 but script worked on Win10 [as compiled 32bit exe, with default parameters]. I added @false to the optional names_only parameter. It does give information but wish it could be reduced to specific attributes. Attached json in .zip for specifics [should be .csv, but I am having fun creating json].
Stan - formerly stanl [ex-Pundit]

spl

Another Win11 test and error associated with default parameters, but will list files adding @fsFTP as final parameter. As with previous post where script failed on Win11 but worked on Win10 this may fall into same scenario. Will plan to compile and run on Win10.

AddExtender('ilcfs44i.dll',0,'ilcfs64i.dll')
host = 'ftp.dlptest.com'
port = 21
;port = 990
user = 'dlpuser'
pwd  = 'rNrKYTX9g7z3RgJRmxWuGHbeu'

;no error on connect, but error on fsDirList
client = fsClientInit(host, port, user, pwd)

;comment above and uncomment and fsDirList returns files
;client = fsClientInit(host, port, user, pwd, @fsFTP)

dir = "/"
list = fsDirList(client, dir, @fsList)
file = AskItemlist('Select a File', list, @lf, @sorted, @single)
Message('You Selected',file)
fsClientDelete(client)
Exit
Stan - formerly stanl [ex-Pundit]