Web API для тестового задания на ASP.NET 6, работающий с S3
Реализован API на ASP.NET 6
Реализована поддержка docker-compose (см. "Локальный запуск")
В качестве s3 совместимого хранилища используется MinIO
В качестве ORM используется Entity Framework Core
, в качестве СУБД PostgreSql
API задокументирован с помощью Swagger
Проект структурирован по принципам clean architecture
Используется CQRS
через MediatR
- При запросе ссылки на загрузку файла генерируется presigned URL и создается file в БД
- Скачивание происходит по постоянной ссылке
/AppFile/Download/{file_id}
- Если файл был загружен в s3, то генерируется presigned Url для скачивание файла, на которую редиректится клиент
- Если файл не был загружен в s3, то выкидывается ошибка
- Если файл не был загружен в s3 и время жизни ссылки на загрузку закончилось, файл удаляется из БД
- асинхронное создание файла в БД при срабатывание event на загрузку файла в MinIO
-
git clone https://github.com/Skye7012/S3ApiTestTask.git
-
cd S3ApiTestTask
-
docker-compose build
-
docker-compose up
-
MinIO: http://localhost:9003/login
Volumes для БД и MinIO будет создан на уровень выше корневой директории