Если Вы хотите настольное приложение, FileZilla является хорошим выбором, но если Вы хотите что-то, для чего можно быть нацелены программно, rsync, вероятно, лучше. В каком контексте Вы собираетесь использовать это?
Вне всякого сравнения может также быть полезно для Вашей задачи - и она может настолько больше.
"Синхронизируя файлы по FTP" здесь при упоминаниях Суперпользователя wput
и ncftp
/ncftpput
.
Я записал служебное приложение, которое сделало это: вычислите хеш SHA256 каждого файла, который будет загружен. Произведите текстовый файл с теми хешами и именами файлов - индексный файл. Загрузите основанный на сервере индексный файл. Если это не присутствует, то предположите, что все файлы должны быть обновлены. Если это присутствует, то, для каждого файла, который будет загружен:
После всех завершенных загрузок файла загрузите новый индексный файл.
Вместо того, чтобы загружать 500 файлов каждый раз, это теперь загружает только измененные файлы плюс индексный файл.