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