# Quoter ๐Ÿš€ > Simple file upload proxy with quotas. Upload to S3, thumbnails via Vercel. **Focus**: Upload + Storage. Thumbnails managed by Vercel Edge API for better performance. ## What it does - ๐Ÿ“ค **Upload files** to S3/Storj with user quotas - ๐Ÿ” **JWT authentication** with session management - ๐Ÿ“ฆ **File serving** with caching and optimization - ๐ŸŒ **CORS support** for web apps ## ๐Ÿš€ Quick Start ```bash # Setup cargo build cp .env.example .env # Configure environment cargo run # Test curl http://localhost:8080/ # Health check ``` ## ๐Ÿ”ง API | Method | Endpoint | Description | |--------|----------|-------------| | `GET` | `/` | Health check or user info (need auth token) | | `POST` | `/` | Upload file (need auth token) | | `GET` | `/{filename}` | Get file or thumbnail | ### Upload file ```bash curl -X POST http://localhost:8080/ \ -H "Authorization: Bearer your-token" \ -F "file=@image.jpg" ``` ### Get thumbnail ```bash # Legacy thumbnails (fallback only) curl http://localhost:8080/image_300.jpg # ๐Ÿ’ก Recommended: Use Vercel Image API https://yoursite.com/_next/image?url=https://files.dscrs.site/image.jpg&w=300&q=75 ``` ## ๐Ÿ—๏ธ Architecture & Setup **Simple 3-tier architecture:** - **Upload**: Quoter (auth + quotas + S3 storage) - **Download**: Vercel Edge API (thumbnails + optimization) - **Storage**: S3/Storj (files) + Redis (quotas/cache) ``` Upload: Client โ†’ Quoter โ†’ S3/Storj Download: Client โ†’ Vercel โ†’ Quoter (fallback) ``` ๐Ÿ’‹ **Simplified approach**: Quoter handles uploads, Vercel handles thumbnails. ## ๐Ÿ“‹ Environment Setup ```bash # Required REDIS_URL=redis://localhost:6379 STORJ_ACCESS_KEY=your-key STORJ_SECRET_KEY=your-secret JWT_SECRET=your-secret # Optional PORT=8080 RUST_LOG=info ``` ## ๐Ÿงช Testing ```bash cargo test # 36 tests passing ./scripts/test-coverage.sh # Coverage report ``` ## ๐Ÿ“š Documentation - [`docs/configuration.md`](./docs/configuration.md) - Environment setup - [`docs/architecture.md`](./docs/architecture.md) - Technical details - [`docs/vercel-og-integration.md`](./docs/vercel-og-integration.md) - Vercel integration For detailed setup and deployment instructions, see the docs folder.