Обработка данных сервером

Серверное приложение должно быть написано на NodeJS и использовать фреймворк express (хотя это не обязательно, нужно лишь придерживать формат)

Описание, настройка и формат написаны тут

Принцип обработки:

  • клиент загружает данные на адрес POST /upload. Данные могут быть загружены «порциями» (определенная длина байтов). В этом случаи информация сохраняется с добавление данных в файл, который уже был создан ранее (информация о позиции с которой нужна начинать добавление указано в теле запроса, параметр body).
  • сервер сохраняет эти данные во временную папку. Файл имеет расширение *.bkp. Наименование файла берется из тела запроса, параметр key
  • после удачного сохранения данных клиент отправляет запрос на сервер GET /sync?key=[name] , что приводит к запуску обработки пакета
  • по завершению обработки клиенту возвращается соответствующий результат, после чего начинается скачивание ответного пакета *.pkg. Данный пакет формируется в результате обработки и именуются также, как и первый, только имеет другое расширение
  • GET /download?key=test&BLOCK_SIZE=4096&position=0 скачивание так же, как и загрузка может происходить порциями. Информация какой размер блока и с какой позиции нужно производить чтение указывается в запросе
  • после завершения загрузки на клиенте начинается обработка данных и в конце этого процесса серверу отправляется еще один запрос GET /remove?key=test на удаление временных данных (файлов с расширениями *.bkp и *.pkg)

Исходный код

git clone git://git.appcode.pw/sync-transfer.git
npm install
Print Friendly, PDF & Email