Разбейте файл на части, передавайте с возможностью продолжения и проверяйте целостность. После обрыва нужно повторять недостающие части, а не весь файл.
Как передать большой файл по сети с плохим соединением? Как оптимизировать передачу?
Разбейте файл на части, передавайте с возможностью продолжения и проверяйте целостность. После обрыва нужно повторять недостающие части, а не весь файл.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Разбейте файл на части, передавайте с возможностью продолжения и проверяйте целостность. После обрыва нужно повторять недостающие части, а не весь файл.
Согласуйте идентификатор и версию файла, размер, смещения и контрольные суммы. Сервер подтверждает сохранённые части; повтор одной части должен быть идемпотентным. После завершения проверяется весь файл и выполняется атомарное переключение временного результата в готовый.
Используйте ограниченный параллелизм, таймауты и backoff. Сжатие полезно не для всех форматов; уже сжатое видео может почти не уменьшиться. Не отключайте TLS ради скорости и не считайте успешную отправку в сокет подтверждением записи файла получателем.