Я написал служебное приложение, которое делало это: вычислял хэш SHA256 для каждого загружаемого файла. Создайте текстовый файл с этими хэшами и именами файлов - индексный файл. Загрузите файл индекса на основе сервера. Если его нет, то предположим, что все файлы необходимо обновить. Если он присутствует, то для каждого загружаемого файла:
- проверьте хеш в загруженном текстовом файле
- если хеша нет, тогда загрузите
- если хеш присутствует и не совпадает с хешем текущего (локального) файла, тогда загрузите
- если хеш присутствует и совпадает, пропустите файл.
После завершения загрузки всех файлов загрузите новый индексный файл.
Вместо того, чтобы загружать 500 файлов каждый раз, теперь загружаются только измененные файлы плюс индексный файл.