- File Upload: Users can upload files through HTTP requests.
- Buffering and Storage: Uploaded files are temporarily stored in memory buffers before being written to a designated storage directory.
- Real-time Synchronization: The application continuously monitors the storage directory for changes.
- WebSockets for Updates: WebSockets are used to establish a real-time connection between the server and the client. Any changes in the storage directory (e.g., new uploads, deletions) are immediately broadcasted to connected clients via WebSockets.
- File Streaming: Upon receiving an HTTP request, the application streams the requested file content back to the client efficiently, without loading the entire file into memory at once.
- This is a custom-built solution using pure Node.js, avoiding external libraries as much as possible for core functionalities.
- The focus is on efficient file handling and real-time updates through WebSockets.