Безопасность компьютерных систем 2019/Задание 2 0 0

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Формулировка

Вам нужно написать маленькое веб-приложение - хостинг файлов с поддержкой конвертации изображений.

Приложение должно позволять пользователю загрузить файл, после чего он должен получать ссылку, по которой файл можно скачать.

Также

  • если файл являлся изображением в формате gif, png или jpg, то на сервере должна быть сгенерирована и сохранена уменьшеннная версия этого изображения размером 20 на 20 пикселей. Пользователю должны в ответе придти 2 ссылки - на исходное изображение и на новое. Если изображение и так размера 20 на 20 или меньше, уменьшенную версию можно не делать. Результирующее изображение должно быть либо в том же формате в котором исходное, либо в png.
  • если файл является zip-архивом, на сервер должны быть сохранены все файлы из него, причем для изображений должны быть сгенерированы уменьшеннные версии согласно предыдущему пункту. В ответе должны быть ссылки на все сохранённые на сервере изображения.

Язык программирования/фреймворк/веб-сервер тоже любой - однако, решения на языке, на котором уже кто-то присылал, будут получать меньше баллов (см. ниже подробнее).

Критерии

Чтобы засчитать задание, вы должны прислать код своего мини-приложения (архивом или ссылкой на код) в телеграм @asterite3 или на мою почту: dansmbox@gmail.com (обратите внимание что почта другая). К коду должен прилагаться README, где есть список всех зависимостей (всего, что ваш код использует) и есть инструкция по установке/запуску. Решение должно легко запускаться на одном из Linux-based дистрибутивов. Я должен смочь запустить ваше приложение, и оно должно правильно работать, иначе задание не будет засчитано. Поскольку с первого раза что-нибудь обязательно не заработает, лучше присылайте пораньше, я напишу если возникнут проблемы чтобы можно было исправить. Автором присланного кода должны быть вы сами, запрещается присылать приложение, сделанное кем-то еще. В своем сообщении или теме письма не забудьте указать по какому поводу пишете (например "Задание по File Upload по курсу Безопасность компьютерных систем" и ФИО).

Дедлаин и баллы

Это бонусное задание, баллы за него даются сверх тех 2 баллов, которые будут даваться за основные задания. Базовые баллы за решение зависят от того, присылал ли кто-то уже решение на том же языке программирования. Если никто не присылал то решение принесет 0.6 баллов. Если одно решение на том же языке уже было принято, стоимость составит 0.5 баллов, если два то 0.4 и так далее до 0.1 балла (ниже 0.1 стоимость не упадёт). Стоимости по языкам можно посмотреть здесь, однако нужно учитывать что эта табличка обновляется вручную, так что это примерная оценка - возможно, уже были присланы (но еще не проверены) несколько решений которые уменьшат эти баллы. Также, дополнительно можно получить

  • +0.1 если кроме gif, png и jpg приложение будет уметь конвертировать svg и sgi
  • +0.1 если кроме zip-архивов приложение будет уметь разархивировать .tar.xz и .tar.zst.
  • Также есть бонус за приложение, которое выгядит приятнее всего (но при этом отвечает требованиям)

20:00 6 октября - крайний срок приёма задания.