New release: FTP Script! v3.0.3.43

New major update for FTP Script! Version 3.0 is finally here! And here’s a non comprehensive list of the main new features:

  • Multi-threaded parallel uploads and downloads
  • Configurable number of concurrent file transfer threads
  • Automatic keep-alive for lengthy operations
  • Automatic adjustment of file timestamps
  • Performance increase by up to 400%
  • Redesigned user interface for the script runner (execution environment)
  • More examples and ready-made templates

As usual you can download the new version from our web site. Thank you!

What’s next in FTP Script!?

While our beta testers are hunting for bugs in FTP Script! v3.0-BETA1, here’s a cool feature that will be introduced in BETA2 next week.

Let’s look at a typical script that uploads a bunch of PDF files and then downloads a bunch of XLSX files from the same server:

Continue reading

FTP Script! v3 is coming!

While working on the new version of our flagship product, Server! v4, we have not forgotten our many FTP Script! users. Our team has been working hard on the brand new major version, and we’re now happy to announce that in few days FTP Script v3.0 will be released.

The main limitation of version 1 and 2 was its single-threaded architecture. Although ideal for unattended file transfer operations, the single thread may become a significant performance hurdle when it comes to uploading or downloading a massive amount of small files.

Therefore all upload/download operations in FTP Script! v3 are now multi-threaded, and you can decide how many concurrent upload/download threads will be used in each transfer operation, and even change it multiple times within a single script. Continue reading

New release: FTP Script! v2.1.2.32

A new version of our FTP Script! software has been released today. It adds an optional parameter to all Upload and Download methods to specify what action should be taken after the file transfer.

The new property defaults to ofaNone, which means that no action will be taken: the file will simply be uploaded/downloaded and nothing else. But if you set the property to ofaDelete, then FTP Script! will automatically:

  • delete any local file after uploading it
  • delete any remote file after downloading it

Thanks to this new property you can write scripts like this:

As usual you can download the new version from our web site. Thank you!

New release: FTP Script! v2.1.1.31

A new version of FTP Script! has just been released. This new version adds two more functions to the scripting framework: ComputerName and CurrentUser. These new methods will help script writers to build more parametric and flexible scripts that can be run unaltered on several different computers.

As usual you can get the latest version from our web site. Thank you!

New release: FTP Script! v2.1.0.30

We have just released a new version of our FTP Script! software. This new version features a refined SSL/TLS socket layer to keep your file transfers safe from the Poodle bug.

It also features a totally new license activation engine, so if you are a registered customer, please, before updating contact us and request your new license code.

As usual, you can download the latest version from our web site.

New release: FTP Script! v2.0.8.28

We have just released a maintenance (minor) update to our FTP Script! software. This new update fixes a couple minor glitches in the previous version, and adds the following 3 functions to the scripting engine:

  1. Sleep: suspends the script execution for a specified amount of time
  2. ExecApp: executes an external application and immediately continues running the script
  3. ExecAppAndWait: executes an external app, and pauses the script execution until the spawned app has terminated its execution

As usual you can download the new version from our web site.

How many concurrent file transfer from the same client?

Sometimes our users ask us how many concurrent file transfers can be initiated simultaneously by one client. The answer deserves a little bit of explanation.

First of all it is important to understand that this article is entirely focused on how to optimize the client side, in fact the server uses I/O completion ports and RTL critical sections to optimize concurrency under heavy load (hundreds or thousands of incoming client connections) and is therefore self-optimized.

The client side, instead, is very different. First of all the client has a GUI (graphical user interface) that needs to be synchronized with the “desktop” of the operating system. Furthermore, on the client side, the concept of “CPU core affinity” becomes very relevant. What is it? Let’s try to provide a simplified explanation… Continue reading