Test task (cloud data storage, any php/js fraweworks) for Napopravku company.
Give it a try: cloud.ershv.com
Использовался Laravel, без JS-фреймворков + Bootstrap.
- Авторизация
- Создание/удаление папок и подпапок
- Загрузка/переименование/удаление файлов в папках и подпапках
- Загрузка файлов: изображения, GIF, pdf, docx, txt, zip.
- Переименование и создание файлов: автоматическое разрешение конфликтов
- Персональная страница для каждого файла - информация, быстрый просмотр, скачивание
- Быстрый просмотр: pdf, docx, mp4, txt, картинки - все просматривается прямо на сайте
- Изменение видимости файла (генерация публичной ссылки)
- Файл можно сделать как публичным, так и наоборот, при этом ссылка каждый раз генерируется новая
- Возможность без регистрации смотреть и скачивать публичные файлы.
Присутствует авторизация. Права клиента проверяются в каждом запросе, и в случае неудачной проверки - 403 ответ.
У каждого клиента свое выделенное хранилище. Каждой папке и каждому файлу при создании присваивается уникальный ID. Клиенты не могут видеть папки и файлы друг друга (кроме случаев, когда файл открыт публично).
Файлы лежат внутри приложения, доступа из public к ним нет. Под раздачу приватных файлов создан отдельный роут.
При генерации публичной ссылки каждый раз используется уникальный публичный ID - приватный уникальный ID всегда остается виден только владельцу.
Допустимые типы загружаемых файлов строго ограничены (разрешены основные и ТОЧНО безопасные), при этом в любой момент нетрудно добавить новый допустимый тип расширения.