Используя Node.js, разработать сервис, принимающий файлы по протоколу HTTP и загружающий в AWS S3. В случае, если принимаемый файл является изображением, то перед отправкой в S3 изображение должно быть преобразовано в указанные размеры.
Оригинал изображения сохранять не нужно. Размеров может быть несколько (large - 2048x2048, medium - 1024x1024, thumb - 300x300). В качестве размеров указаны максимально допустимые значения ширины и высоты.
При выполнении тестового задания приветствуются вопросы.
Примечания:
- готовый сервис должен быть развёрнут на Heroku/AWS/etc.;
- сервис должен обслуживать только один endpoint: запрос на адрес вида /{filename};
- не использовать multipart/form-data (в заголовках запроса будет указан Content-Type: например, Content-Type: image/png);
- количество потребляемой сервисом оперативной памяти не должно быть связано с размером загружаемого файла;
- конфигурация сервиса должна производиться посредством переменных окружения;
- необходимо обеспечить возможность указания допустимых расширений и допустимых типов файлов (Content-Type) (все прочие файлы сервис должен отклонять);
- необходимо обеспечить возможность указания максимального размера файла;
- желательно покрытие кода тестами.