Файловое хранилище, которое позволяет хранить различные типы файлов — документы, фотографии, другие данные.
Сервис, который обрабатывает поступающие запросы.
Список необходимых эндпойнтов.
-
Регистрация пользователя.
Описание изменений.
POST /api/v1/user/register
Регистрация нового пользователя. Запрос принимает на вход логин и пароль для создания новой учетной записи.
-
Авторизация пользователя.
Описание изменений.
POST /api/v1/user/auth
Запрос принимает на вход логин и пароль учетной записи и возвращает авторизационный токен. Далее все запросы проверяют наличие токена в заголовках -
Authorization: Bearer <token>
-
Информация о загруженных файлах.
Описание изменений.
GET /api/v1/files
Возвращает информацию о ранее загруженных файлах. Доступно только авторизованному пользователю.
Response
{ "account": "user_name", "files": [ { "id": "a19ad56c-d8c6-4376-b9bb-ea82f7f5a853", "name": "notes.txt", "created_ad": "2020-09-11T17:22:05Z", "path": "/homework/test-folder/notes.txt", "size": 8512 }, ... { "id": "113c7ab9-2300-41c7-9519-91ecbc527de1", "name": "tree-picture.png", "created_ad": "2019-06-19T13:05:21Z", "path": "/homework/work-folder/environment/tree-picture.png", "size": 1945 } ] }
-
Загрузить файл в хранилище.
Описание изменений.
POST /api/v1/files/upload
Метод загрузки файла в хранилище. Доступно только авторизованному пользователю. Для загрузки заполняется полный путь до файла, в который будет загружен/переписан загружаемый файл.
Request
{ "path": <full-path-to-file>||<path-to-folder>, }
Response
{ "id": "a19ad56c-d8c6-4376-b9bb-ea82f7f5a853", "name": "notes.txt", "created_ad": "2020-09-11T17:22:05Z", "path": "/homework/test-folder/notes.txt", "size": 8512 }
-
Скачать загруженный файл.
Описание изменений.
GET /api/v1/files/download
Скачивание ранее загруженного файла. Доступно только авторизованному пользователю.
Path parameters
/?path=<path-to-file>||<file-meta-id>
Возможность скачивания как по переданному пути до файла, так и по идентификатору.
Клонировать репозиторий и перейти в него. Переименовать файл .env.example в .env
mv .env.example .env
Заполнить файл .env актуальными данными.
Запустить контейнеры
docker-compose up -d
Проект будет доступен на 8080 порту.