Safe automated file upload implemented as a server side "shell" and a client that logs in using an external program (e.g. ssh) for networking.
There is a dedicated user on the server, which receives a multi-file upload. Once the upload is finished the server runs a preconfigured script for processing the files. The server software is set as shell (in /etc/passwd) for the given user.
The client runs an external process (typically ssh with stored keys) to log in to the server and upload all files from a directory. The client implements retry and can resume half-finished uploads later.
Both the server and the client are implemented in C99 for POSIX systems.