Skip to content

This API provides file upload/download operations on cloud storage. Includes local MinIO storage. But also supports Google Cloud Storage and AWS S3 with HMAC (access/secret) keys authentication.

License

alperencubuk/fastapi-mongodb-minio-jwt-docker-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI MongoDB MinIO JWT Docker REST API

Summary:

This API provides file upload/download operations on cloud storage. Includes local MinIO storage. But also supports Google Cloud Storage and AWS S3 with HMAC (access/secret) keys authentication.

Tech Stack:

FastAPI web framework for building REST API
MongoDB for database
MinIO for cloud storage
JWT for authentication
Docker for containerization
Docker Compose for defining and running multi-container


Requirements:

docker
docker-compose

How to Run:

docker-compose up --build

Docs:

localhost:8000/docs

Endpoints:

POST  /auth/token                  # get token
POST  /auth/refresh                # refresh token

GET   /files                       # download file
POST  /files                       # upload file

GET   /storages                    # get storage list
POST  /storages                    # add storage
GET   /storages/{storage_id}       # get storage
PATCH /storages/{storage_id}       # update storage

GET   /users                       # get user
POST  /users                       # add user
PATCH /users                       # update user
GET   /users/username/{username}   # check username

GET   /users/{username}            # get user (admin)
PATCH /users/{username}            # update user (admin)

GET   /                            # check health

Alperen Cubuk

About

This API provides file upload/download operations on cloud storage. Includes local MinIO storage. But also supports Google Cloud Storage and AWS S3 with HMAC (access/secret) keys authentication.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages