Решал похожую задачу. Самый правильный путь - потребовать создания флагов, указывающих на то, что файл закончил создаваться. Можно внутрь md5 файла писать. А вы на своей стороне будете проверять, существует ли для файла соответствующий файл-флаг и корректная ли у него md5.
Если это невозможно, то правильным способом было бы считывать с некоторой паузой md5 файлов (если файлы небольшие, для больших лучше размер), и если md5 с предыдущего считывания не поменялся, то считать файл готовым к скачиванию и копировать его.