Interruptions have a way of happening when you are least prepared.
From an unstable internet connection to accidentally closing your FTP client or switching off the computer before verifying all actions are complete — the FTP resume feature helps you recover and get your files where they need to be.
New FTP Resume Commands
The FTP protocol was first introduced 50 years ago and since then it has become a very popular choice when companies need to transfer files. In 2007, RFC 3659 introduced new FTP commands which included commands to allow users to restart interrupted transfers.
FTP Commands to Restart Transfers
MLST : Lists information about a file.
MLSD : Lists information about files inside a directory.
SIZE : Gets the file size of an object.
REST : A marker indicating a file can be resumed.
Resuming vs. Overwriting
If your FTP server supports RFC 3659, you’ll be able to resume interrupted transfers based on the amount of data that already exists on the receiving side.
It’s important to keep in mind that resuming an interrupted transfer will not validate that the previously uploaded data matches the current data of the file — it simply restarts the transfer from where it left off. If for some reason the beginning of your file has changed you’ll want to overwrite the file instead.
Incomplete FTP Uploads
If your FTP client connection failed during uploading, it will leave behind a partial file. In your account, you will see a smaller file size than expected. Once you recognize that there was an error, log back into your FTP client and the incomplete upload should automatically pick up where it left off.
Some clients may not automatically resume. In this case, your FTP client may provide you with a message and the option to resume. Choose the FTP resume option and your upload will continue.
Resuming Your Transfer
To resume a transfer, first the client (for example, FileZilla) needs to determine how much of the file has already been transferred. It can check the size on the server using MLST/MLSD/SIZE (for uploads) or the size on the client itself (for downloads) to determine where it left off.
Once your FTP client has this information, it issues a REST command to inform the server to start from that position in the file. After issuing the REST command the client will either need to issue a STORE (for uploads) or RETRIEVE (for downloads) to start the actual transfer.
SFTP is a separate protocol from traditional FTP and offers increased security by depending on an underlying SSH protocol to provide secure file transfers between two parties.
The SFTP protocol supports both `reget` and `reput` commands which allow you to resume downloads and uploads respectively. Like FTP, these commands simply restart the upload from where it left off.
When unexpected interruptions occur, FTP resume is there to pick up where your file transfer left off.
For more on FTP commands, check our Essential FTP Commands List.