Написать скрипт загрузки файлов (nodejs)
Входящие файлы
Прием файлов по HTTP.
Несколько точек входа:
- /public/
- /media/
- ...
В зависимости от точки будет выбран адрес, где хранить файлы:
public => /var/www/public
media => /var/www/media и т.п.
Запись в хранилище
Каждый входящий файл должен попасть на каждый сервер (аналог RAID 1)
В идеале - работаем с потоками:
- Поток на M1
- Поток на M2
- Поток на M3
- Поток на MN…
- Поток на локальную файловую систему
Как только файл записан успешно на локальный диск, то отправлять успешный ответ.
Обработка ошибок
В случае, если запись на один из серверов невозможна, файл, который не удалось записать на X сервер, откладывается для последующей повторной отправки на этот сервер (для этого мы и пишем копию файла локально).
Также отправляется уведомление об ошибке в систему мониторинга (по HTTP).
Запуск повторной отправки
Отдельная консольная команда, которая пробует повторно отправить все файлы из очереди.
Тесты приветствуются.