in reply to faster alternatives to Net::FTP and Net:LSFTP

In addition to compress-transfer-uncompress, if you need to transfer the file multiple times, maybe rsync (via Rsync) can help you. With it, you can start transferring incomplete files and simply transfer the missing parts once a file has been written to disk completely. In the case of backups, rsync can transfer just the parts that are missing to a complete file.

The drawback of rsync is that it is another program that you will need to install on both sides of the connection.