Untone b876564f4a 📚 Complete documentation overhaul
### New Documentation:
- **URL Format Guide**: Complete guide for image resizer URL patterns
- **Hybrid Architecture**: Vercel Edge + Quoter integration strategy
- **Updated How-it-works**: Comprehensive system architecture with diagrams
- **Enhanced Configuration**: Security settings, troubleshooting, Vercel integration

### Documentation Structure:
📋 Architecture & Principles:
- 🚀 How Quoter Works (detailed system architecture)
- 🔀 Hybrid Architecture (Vercel + Quoter best practices)
- 📐 URL Format (complete resizer URL guide)

🛡️ Security & Configuration:
- 🔒 Security & DDoS Protection (comprehensive guide)
- ⚙️ Configuration (updated with new settings)
- 🚀 Deployment & 📊 Monitoring

🎨 Integrations:
- Vercel OG Integration guides
- Edge Function examples

### Key Features Documented:
- Complete URL patterns for image resizing
- Security rate limiting configuration
- Hybrid upload (Quoter) + download (Vercel) strategy
- JWT validation and session management
- Multi-cloud storage (Storj + AWS fallback)
- Performance optimization techniques
- Production deployment strategies

All documentation is now production-ready and includes practical examples! 📖
2025-09-02 12:32:15 +03:00
2025-09-02 09:09:34 +03:00
2025-08-12 15:59:51 +03:00
2025-09-02 11:04:27 +03:00
2025-09-02 12:32:15 +03:00
ci
2025-08-02 00:39:05 +03:00
fmt
2025-09-01 22:58:03 +03:00
2025-09-01 22:52:33 +03:00
2025-08-12 15:59:51 +03:00
2025-09-02 09:09:34 +03:00
2025-08-02 00:18:09 +03:00
2025-08-12 15:59:51 +03:00

Quoter 🚀

Rust Actix Web Redis S3 Compatible Tests License

Микросервис для управления файлами с поддержкой квот, миниатюр и интеграции с S3 хранилищами

Quoter - это высокопроизводительный сервис для загрузки и управления файлами, построенный на Rust с использованием Actix Web. Поддерживает автоматическое создание миниатюр, управление квотами пользователей и интеграцию с различными S3-совместимыми хранилищами.

📖 Документация

Подробная документация доступна в папке docs/:

Основные разделы

Технические детали

Основные возможности

  • 🔐 Аутентификация через JWT токены
  • 📁 Загрузка файлов в S3/Storj с автоматическим определением MIME-типов
  • 🖼️ Автоматические миниатюры для изображений (10, 40, 110, 300, 600, 800, 1400px)
  • 💾 Управление квотами пользователей (5 ГБ по умолчанию)
  • 🎨 Оверлеи для shout с автоматическим наложением текста
  • 🔄 CORS поддержка для веб-приложений
  • Высокая производительность благодаря асинхронной архитектуре
  • 📊 Мониторинг и логирование всех операций

🏗️ Архитектура

Quoter построен на современном стеке технологий:

  • Backend: Rust + Actix Web
  • База данных: Redis для квот и кэширования
  • Хранилище: S3-совместимые сервисы (Storj, AWS S3)
  • Аутентификация: JWT токены через GraphQL API
  • Обработка изображений: image-rs + imageproc

🧪 Тестирование

Запуск тестов

# Все тесты
cargo test

# Конкретный тест
cargo test test_health_check

# Тесты с покрытием
./scripts/test-coverage.sh

Статистика тестов

  • basic_test.rs: 23 теста (основная функциональность)
  • handler_tests.rs: 13 тестов (HTTP endpoints)
  • Общее покрытие: 100% основных компонентов
  • Статус: Все тесты проходят успешно

📋 Требования

  • Rust: 1.70 или выше
  • Redis: 6.0 или выше
  • S3 совместимое хранилище: Storj, AWS S3 или другое
  • API ядра: для аутентификации и получения данных shout

🚀 CI/CD и автоматизация

Статус конвейера

  • Тесты: 36/36 проходят успешно
  • Компиляция: без ошибок
  • Покрытие: 100% основных компонентов
  • 🚀 Деплой: автоматический при успешном прохождении тестов

Автоматизация

  • Автоматический запуск тестов при каждом коммите
  • Проверка качества кода и покрытия
  • Автоматический деплой в продакшн
  • Полностью автоматизированный конвейер "тесты → деплой"

🔧 Использование

Переменные окружения

Подробная информация о настройке переменных окружения доступна в документации по конфигурации.

API Endpoints

Основные API endpoints:

Метод Endpoint Описание
GET / Проверка состояния сервера
POST / Загрузка файла
GET /{filename} Получение файла/миниатюры
GET /quota Информация о квоте пользователя
POST /quota/increase Увеличение квоты
POST /quota/set Установка квоты

Подробная документация API доступна в API Reference.

Примеры использования

Загрузка файла

curl -X POST http://localhost:8080/ \
  -H "Authorization: Bearer your-token" \
  -F "file=@image.jpg"

Получение миниатюры

curl http://localhost:8080/image_300.jpg

Увеличение квоты

curl -X POST http://localhost:8080/quota/increase \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "user123", "additional_bytes": 1073741824}'

🧪 Разработка

cargo build # сборка
cargo test # запуск тестов
cargo clippy # Проверка кода
cargo fmt # Форматирование
RUST_LOG=debug cargo run # подробные логи

Метрики

Основные метрики для мониторинга:

  • Количество загруженных файлов
  • Использование квот пользователями
  • Время ответа API
  • Ошибки аутентификации
  • Ошибки загрузки в S3
Description
quota guarded uploader and thumbs generator for progressive image load
Readme MIT 1.2 MiB
Languages
Rust 98.6%
Dockerfile 1.4%