Skip to content

Repository files navigation

☁️ Cloud Storage

REST-приложение для хранения файлов и директорий с авторизацией пользователей.

Проект позволяет регистрировать пользователей, загружать файлы и папки, создавать директории, переименовывать, удалять, искать и скачивать ресурсы. Для хранения файлов используется MinIO, данные пользователей хранятся в PostgreSQL, а пользовательские сессии — в Redis.


🌐 Сервер

http://195.19.12.71:8080

🚀 Возможности

  • Регистрация пользователей
  • Авторизация по сессиям
  • Выход из аккаунта
  • Загрузка файлов
  • Загрузка директорий
  • Создание пустых директорий
  • Получение списка файлов и папок
  • Переименование ресурсов
  • Удаление файлов и директорий
  • Поиск файлов и папок
  • Скачивание файлов
  • Скачивание директорий в виде ZIP-архива

🛠 Используемые технологии

Backend

  • Java 21
  • Spring Boot 4
  • Spring Security
  • Spring Data JPA
  • Spring Session
  • PostgreSQL
  • Redis
  • MinIO

Frontend

  • React

Инфраструктура

  • Docker
  • Docker Compose

Тестирование

  • JUnit 5
  • Testcontainers

📚 API

После запуска проекта документация Swagger доступна по адресу

http://localhost:8080/swagger-ui/index.html


⚙️ Запуск проекта

  1. Клонировать репозиторий
git clone ...
  1. Создать файл .env

  2. Выполнить

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 Название бакета

About

Pet project cloud storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages