2025-09-02 14:00:54 +03:00
|
|
|
# Quoter Features
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 18:57:17 +03:00
|
|
|
Simple file upload/download proxy with thumbnail generation and S3 storage.
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
## What Quoter Does
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
### 📤 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
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
### 📁 File Storage
|
|
|
|
|
- **S3-compatible storage** (Storj primary, AWS fallback)
|
2025-09-02 18:57:17 +03:00
|
|
|
- **Redis caching** for file metadata and quotas (graceful fallback)
|
2025-09-02 14:00:54 +03:00
|
|
|
- **Multi-cloud support** with automatic migration
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 18:57:17 +03:00
|
|
|
### 🖼️ 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
|
|
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
### 🌐 File Serving
|
|
|
|
|
- **Direct file access** via filename
|
2025-09-02 18:57:17 +03:00
|
|
|
- **Thumbnail access** via `filename_width.ext` pattern
|
2025-09-02 14:00:54 +03:00
|
|
|
- **Fast response** optimized for Vercel Edge caching
|
[0.6.1] - 2025-09-02
### 🚀 Изменено - Упрощение архитектуры
- **Генерация миниатюр**: Полностью удалена из Quoter, теперь управляется Vercel Edge API
- **Очистка legacy кода**: Удалены все функции генерации миниатюр и сложность
- **Документация**: Сокращена с 17 файлов до 7, следуя принципам KISS/DRY
- **Смена фокуса**: Quoter теперь сосредоточен на upload + storage, Vercel обрабатывает миниатюры
- **Логирование запросов**: Добавлена аналитика источников для оптимизации CORS whitelist
- **Реализация таймаутов**: Добавлены настраиваемые таймауты для S3, Redis и внешних операций
- **Упрощенная безопасность**: Удален сложный rate limiting, оставлена только необходимая защита upload
- **Vercel интеграция**: Добавлена поддержка Vercel Edge API с CORS и оптимизированными заголовками
- **Redis graceful fallback**: Приложение теперь работает без Redis с предупреждениями вместо паники
- **Умная логика ответов**: Автоматическое определение Vercel запросов и оптимизированные заголовки
- **Консолидация документации**: Объединены 4 Vercel документа в один comprehensive guide
### 📝 Обновлено
- Консолидирована документация в практическую структуру:
- Основной README.md с быстрым стартом
- docs/SETUP.md для конфигурации и развертывания
- Упрощенный features.md с фокусом на основную функциональность
- docs/vercel-frontend-migration.md - единый comprehensive guide для Vercel интеграции
- Добавлен акцент на Vercel по всему коду и документации
- Обновлены URL patterns в документации: quoter.discours.io → files.dscrs.site
### 🗑️ Удалено
- Избыточные файлы документации (api-reference, deployment, development, и т.д.)
- Дублирующийся контент в нескольких документах
- Излишне детальная документация для простого файлового прокси
- 4 отдельных Vercel документа: vercel-thumbnails.md, vercel-integration.md, hybrid-architecture.md, vercel-og-integration.md
💋 **Упрощение**: KISS принцип применен - убрали избыточность, оставили суть.
2025-09-02 14:39:54 +03:00
|
|
|
- **CORS whitelist** for secure access (includes Vercel domains)
|
|
|
|
|
- **Vercel-compatible headers** for optimal edge caching
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
## 🚀 Modern Architecture
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 18:57:17 +03:00
|
|
|
**Quoter**: File upload/download + thumbnail generation + S3 storage
|
|
|
|
|
**Vercel**: Global CDN + edge optimization
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 18:57:17 +03:00
|
|
|
💋 **Self-contained**: Quoter handles everything - uploads, thumbnails, and serving.
|
|
|
|
|
💋 **Reliable**: No external dependencies for core functionality.
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
## Technical Stack
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
- **Backend**: Rust + Actix Web
|
|
|
|
|
- **Storage**: Redis (metadata) + S3/Storj (files)
|
|
|
|
|
- **Auth**: JWT tokens
|
|
|
|
|
- **Tests**: 36 passing tests with full coverage
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
## Status
|
2025-08-12 15:59:51 +03:00
|
|
|
|
2025-09-02 14:00:54 +03:00
|
|
|
- ✅ Upload API with quotas
|
|
|
|
|
- ✅ Static file server
|
|
|
|
|
- ✅ S3 storage integration
|
|
|
|
|
- ✅ JWT authentication
|
|
|
|
|
- ✅ Rate limiting & security
|
2025-09-02 18:57:17 +03:00
|
|
|
- ✅ Thumbnail generation with Storj caching
|
|
|
|
|
- ✅ ETag caching for performance
|
2025-09-02 14:00:54 +03:00
|
|
|
- ✅ Full test coverage
|
|
|
|
|
- 🚀 Production ready
|