REST-приложение для хранения файлов и директорий с авторизацией пользователей.
Проект позволяет регистрировать пользователей, загружать файлы и папки, создавать директории, переименовывать, удалять, искать и скачивать ресурсы. Для хранения файлов используется MinIO, данные пользователей хранятся в PostgreSQL, а пользовательские сессии — в Redis.
- Регистрация пользователей
- Авторизация по сессиям
- Выход из аккаунта
- Загрузка файлов
- Загрузка директорий
- Создание пустых директорий
- Получение списка файлов и папок
- Переименование ресурсов
- Удаление файлов и директорий
- Поиск файлов и папок
- Скачивание файлов
- Скачивание директорий в виде ZIP-архива
- Java 21
- Spring Boot 4
- Spring Security
- Spring Data JPA
- Spring Session
- PostgreSQL
- Redis
- MinIO
- React
- Docker
- Docker Compose
- JUnit 5
- Testcontainers
После запуска проекта документация Swagger доступна по адресу
http://localhost:8080/swagger-ui/index.html
- Клонировать репозиторий
git clone ...-
Создать файл
.env -
Выполнить
docker compose up --buildПосле запуска приложение будет доступно по адресу
http://localhost:8080
| Переменная | Назначение |
|---|---|
| DB_URL | URL PostgreSQL |
| DB_USERNAME | Пользователь БД |
| DB_PASSWORD | Пароль БД |
| REDIS_HOST | Хост Redis |
| REDIS_PORT | Порт Redis |
| MINIO_URL | Адрес MinIO |
| MINIO_ACCESS_KEY | Логин MinIO |
| MINIO_SECRET_KEY | Пароль MinIO |
| MINIO_BUCKET | Название бакета |