Шестое задание курса java-backend-learning-course
Многопользовательское файловое облако. Пользователи сервиса могут использовать его для загрузки и хранения файлов. Источником вдохновения для проекта является Google Drive.
Приложение будет доступно по пути http://localhost:8080
Можно использовать docker-compose файл, который сделает всё автоматически
sudo docker-compose up
Необходимо в docker-compose-remote.yml
настроить
sudo docker-compose up -f docker-compose-remote.yml
Образ доступен на 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
Тесты