Шестое задание курса 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
Тесты