nestjs-file-streaming
nestjs-file-streaming copied to clipboard
NestJS File Streaming With MongoDB
NestJS File Streaming
Features
- Efficient upload / download
- Very low RAM usage
- Great for providing large files without storing them in the filesystem
- Can be used to efficiently stream video files (skipping in the timeline will result in a partial download)
- Accepts
range
header to support partial downloads
Used packages
-
Fastify Adapter
for performance -
Mongoose
to connect to MongoDB -
MongoDB GridFS
for streaming chunked files to and from Mongo DB -
fastify-multipart
to parse Multipart forms
Setup
Docker
-
docker-compose up -d
- Swagger documentation can be found at
http://localhost:3101/api/
Local
- Start a MongoDB instance with default configuration
- Use
npm start
to compile and start the server - Swagger documentation can be found at
http://localhost:3101/api/
Usage
- Upload a file:
POST
tohttp://localhost:3101/
as multipart/form-data withfile
field - Download an uploaded file:
GET
tohttp://localhost:3101/<id>
-
GET
tohttp://localhost:3101
for list of uploaded videos - More information can be found in the Swagger Documentation