SFTP Transfer Across Multiple Servers

Hello everyone,

Have a question which I'm not entirely sure about, but will ask anyway.

We have three servers (A/B/C), 'A' being the local host, 'B' being a SFTP server on the DMZ, and 'C' being the intended remote host. The task is to transfer file/s from server 'A' to server 'C' via server 'B'.

Now I can already hear people asking why not just go from server 'A' to 'C' directly. That'd be great, however due to existing security policies & practices which are in place on both hosts ('A' & 'C'), and an obligation to maintain PCI security requirements; this isn't possible.

Hence the SFTP server (server 'B'). It's a windows platforn (don't razz me) running WinSSHD. Have already performed sftp connectivity testing from server 'A' to 'B' successfully. So no issues there.

The logistics issue (more understanding really) for me is that server 'B' cannot under any circumstances retain any received file for any time longer than is necessary (Business and Security request).

So how best should I monitor files on server 'B' coming from server 'A' and then commence an SFTP to move the file to server 'C' ??
My initial thought was to monitor for the existance of the file and then execute a predefined sftp batch script.

No problem I initially thought, but what would happen if the file was still in the process of uploading from server 'A' when server 'B' identifies the existance of the inbound file. If it tries to execute the sftp batch before the upload from server 'A' is complete it would/could cause issues.

Is this an issue or am I over reacting here ?? :o

A possible alternative was to have two(2) files sent across from server 'A', the first being the "required" file, the second being a trigger. Server 'B' would monitor for the trigger file, then execute the sftp batch script upon the existance of the trigger and "required" files.

I do wish I had the time available to tinker with this, however like many projects, the Operations side is left to the last minute to be advised of what is required - and even then it's flakey.

Hope I've been able to keep everything clear.
Any recommendations / suggestions appreciated.

Cheers,
Cameron