Skip to content

farneser/cloud-file-storage

Repository files navigation

Шестое задание курса java-backend-learning-course

Java CI with Maven Docker Image CI Checkstyle validation

Многопользовательское файловое облако. Пользователи сервиса могут использовать его для загрузки и хранения файлов. Источником вдохновения для проекта является Google Drive.

Запуск

Полностью локально

Приложение будет доступно по пути http://localhost:8080

Можно использовать docker-compose файл, который сделает всё автоматически

sudo docker-compose up 

Бд на сервере

Необходимо в docker-compose-remote.yml настроить

sudo docker-compose up -f docker-compose-remote.yml

DockerSERVER_PORT

Образ доступен на DockerHub

Пример запуска с подключением на удаленные СУБД

version: '3'

services:
  cloud-file-storage:
    container_name: cloud-file-storage
    image: farneser/cloud-file-storage
    ports:
      - "8080:8080"
    environment:
      POSTGRES_HOST: localhost
      POSTGRES_PORT: 5432
      POSTGRES_DB: cloud-file-storage
      POSTGRES_USERNAME: postgres
      POSTGRES_PASSWORD: postgres
      REDIS_HOST: localhost
      REDIS_PORT: 6379
      MINIO_HOST: MINIO_HOST_PATH # example http://localhost:9000
      MINIO_ACCESS_KEY: YOUR_MINIO_ACCESS_KEY
      MINIO_SECRET_KEY: YOUR_MINIO_SECRET_KEY
      MINIO_FILES_BUCKET: user-files

Запуск и больше информации можно узнать из официальной документации

Базовая команда запуска

docker-compose up -d

Переменные окружения

Наименование Стандартное значение Описание
POSTGRES_HOST localhost ipv4 адрес постгрес
POSTGRES_PORT 5432 порт постгрес
POSTGRES_DB cloud-file-storage название базы данных постгрес
POSTGRES_USERNAME postgres наименование пользователя постгрес
POSTGRES_PASSWORD postgres пароль пользователя постгрес
REDIS_HOST localhost ipv4 адрес редис
REDIS_PORT 6379 порт редис
MINIO_HOST http://localhost:9000 url подключения к minio
MINIO_ACCESS_KEY ключ подключения к minio
MINIO_SECRET_KEY секретный ключ базы minio
MINIO_FILES_BUCKET user-files наименование корневого бакета в minio
LOGGING_LEVEL INFO Уровень логирования (ERROR, WARN, INFO, DEBUG, TRACE)
SERVER_PORT 8080 Порт приложения

Функционал приложения

Работа с пользователями:

  • Регистрация
  • Авторизация
  • Logout

Работа с файлами и папками:

  • Загрузка файлов и папок
  • Создание новой пустой папки (аналогично созданию новой папки в проводнике)
  • Удаление
  • Переименование

Эндпоинты

Эндпоинты описаны в README.md

Стек технологий

Тесты