59 lines
1.9 KiB
Markdown
59 lines
1.9 KiB
Markdown
# Quoter Features
|
|
|
|
Simple file upload/download proxy with thumbnail generation and S3 storage.
|
|
|
|
## What Quoter Does
|
|
|
|
### 📤 File Upload
|
|
- **Multipart uploads** to S3/Storj storage
|
|
- **User quotas** (5GB default per user)
|
|
- **JWT authentication** with session management
|
|
- **MIME type detection** from file content
|
|
- **Rate limiting** to prevent abuse
|
|
|
|
### 📁 File Storage
|
|
- **S3-compatible storage** (Storj primary, AWS fallback)
|
|
- **Redis caching** for file metadata and quotas (graceful fallback)
|
|
- **Multi-cloud support** with automatic migration
|
|
|
|
### 🖼️ Thumbnail Generation
|
|
- **On-demand WebP thumbnails** with configurable dimensions
|
|
- **Storj caching** for generated thumbnails
|
|
- **Smart fallback** to original images if generation fails
|
|
- **ETag caching** for optimal performance
|
|
|
|
### 🌐 File Serving
|
|
- **Direct file access** via filename
|
|
- **Thumbnail access** via `filename_width.ext` pattern
|
|
- **Fast response** optimized for Vercel Edge caching
|
|
- **CORS whitelist** for secure access (includes Vercel domains)
|
|
- **Vercel-compatible headers** for optimal edge caching
|
|
|
|
## 🚀 Modern Architecture
|
|
|
|
**Quoter**: File upload/download + thumbnail generation + S3 storage
|
|
**Vercel**: Global CDN + edge optimization
|
|
|
|
💋 **Self-contained**: Quoter handles everything - uploads, thumbnails, and serving.
|
|
💋 **Reliable**: No external dependencies for core functionality.
|
|
|
|
## Technical Stack
|
|
|
|
- **Backend**: Rust + Actix Web
|
|
- **Storage**: Redis (metadata) + S3/Storj (files)
|
|
- **Auth**: JWT tokens
|
|
- **Tests**: 36 passing tests with full coverage
|
|
|
|
## Status
|
|
|
|
- ✅ Upload API with quotas
|
|
- ✅ Static file server
|
|
- ✅ S3 storage integration
|
|
- ✅ JWT authentication
|
|
- ✅ Rate limiting & security
|
|
- ✅ Thumbnail generation with Storj caching
|
|
- ✅ Audio streaming with Range request support
|
|
- ✅ ETag caching for performance
|
|
- ✅ Full test coverage
|
|
- 🚀 Production ready
|