De Service All File Converter ass als eng skalierbar, verdeelt SaaS-System op Basis vum modernen asynchrone Stack Python 3.12 entworf. D'Architektur ass an onofhängeg Schichten ënnerdeelt: den Empfang vun Netzwierk-Eventer, d'Orchestratioun vun Aufgaben, d'isoléiert Ausféierung vu schwéiere binäre Prozesser an de analytesche Kontur.

1. Allgemenge Stack vun Technologien a Systemarchitektur

D'Basis vun der Plattform bilden d'Prinzipien vun enger héijer Leeschtung (high-throughput), engem minimale Späicherverbrauch an engem Schutz virun Ausfäll:

  • Telegram Bot Framework: Aiogram 3.13, deen am Webhook-Modus mat Validatioun vu geheime Tokens a personaliséierte Filtere vum Noriichteliewenszyklus leeft.
  • Web-Gateway an REST API: FastAPI op Basis vum ASGI-Server Uvicorn mat asynchroner Streaming-Gabrëch vu binäre Fichieren (FileResponse) an enger Hannergrondbereinegungsfunktioun duerch BackgroundTasks.
  • Quewe-Broker a Cache: Redis 7 (Verwaltung vun Celery-Aufgaben, Spärungen géint de Race-Condition-Zoustand, Schutz géint Brute-Force, Caching vu Sessiounen).
  • Hannergrond-Ausféierer (Task Queue): Celery 5.4 mat engem dedizéierte Pool vu Worker an engem isoléierten Container converter_worker.
  • Datebank: PostgreSQL 16 mat der ORM-Schicht SQLAlchemy 2.0 (asyncpg), engem Pool vu permanente Verbinntungen (20+10 overflow) an engem Automatesch-Wiederholl-Mechanismus fir Feelerhaft Transaktiounen (@db_retry).
  • Netzwierkkontur: Tunneléierung duerch Cloudflare Zero Trust mat Sperrung vum direkten IP-Zougang zum Server iwwer Middleware.

2. Asynchron Quewen an Isolatioun vu schwéiere Berechnungen (Celery + Redis)

D'Konversioun vu Mediendateien an Office-Päck generéiert Spëtzebelaaschtungen op CPU a RAM. Fir datt de Veraarbechtungsprozess vun den ukommende Noriichten am Telegram bei schwéieren Operatiounen net blockéiert gëtt, ass eng strikt Isolatioun ëmgesat ginn:

  • Delegéierung vun Aufgaben un Redis: Bei der Auswiel vum Format registréiert den Telegram-Handler d'Aufgab an der Datebank mam Status PROCESSING an setzt d'Aufgab an d'Quewe tasks.execute_conversion iwwer Celery.
  • Isoléierte Worker-Container: D'Ausféierung vun de Konversiounsutilite geschitt an engem getrennten Linux-Container mat engem eegene Limit fir Prozessorzäit a Späicher.
  • Kontroll vuhängende Prozesser an Zäitlimit(en): D'Aufropen vun externe Utilitéite sinn an en asynchrone Kontext mat enger strenge Zäitkontroll agewéckelt (conversion_timeout_sec = 180). Bei Iwwerschreidung vum Limit gëtt de Prozess zwangsleefeg duerch proc.kill() beendegt, fir d'Ressourcen fräizeginn.
  • Feelerresistent Fallback: Bei enger temporärer Onverfügbarkeet vum Redis-Broker gëtt d'Aufgab automatesch vum lokalen asynchrone Disponent iwwerholl an direkt ouni Ausfall fir de Benotzer ausgeféiert.

3. Pipeline vu spezialiséierte Konversiounsmotoren

Fir all Datentyp ginn enk spezialiséiert nativ Utilitéiten a Bibliothéiken agesat:

  • Dokumenter an Tabellen (LibreOffice): E kapelllosen Office-Pak (soffice --headless) fir präzis Rendering vun DOCX, XLSX, PPTX, RTF, ODT an PDF-Format oder Textfichieren.
  • Streaming Audio a Video (FFmpeg): Multithreaded Transkodéierung vu Videocodecs (H.264), Audiocodecs (MP3, OGG Opus), Extraktioun vun Tounspueren, Generatioun vu GIF (Lanczos-Filter) a quadratescht Ausschneiden (1:1) vun Telegram-Videonoriichten.
  • Héichgeschwindeg PDF-Veraarbechtung (Poppler Utils): Utilitéite pdftotext (blëtzaarteg Extraktioun vu formatéiertem Text an UTF-8) a pdftoppm (säiteweis Rendering vu PDF an Rasterbiller ouni LibreOffice-Zousazkäschten).
  • Optesch Zeechenerkennung (Tesseract OCR): Neural Netzwierk-Extraktioun vu gedrécktem Text aus Scans a Fotoen op iwwer 40 Sproochen.
  • Raster- a Vektorgrafik: Bibliothéike Pillow (inklusiv Ënnerstëtzung fir HEIC- an AVIF-Formater), CairoSVG fir Vektorbiller an lottie fir animéiert Telegram-Sticker (.TGS).
  • Bicher, Ënnertitelen a Schrëften: De Motor Calibre (ebook-convert), den Ënnertitelparser pysubs2 (SRT, VTT, ASS, SSA) an de Schrëftkompiler fonttools (Brotli-Kompressioun am WOFF2).

4. Preventive Ressourceschutz (System Guard)

Fir de Schutz virun engem Serverofstuerz wéinst Späichermangel (OOM Killer) gouf de Service fir eng preventive Diagnostik System Guard agefouert. Virun der Unhuelung vun engem Fichier an d'Veraarbechtung iwwerpréift de System d'Schlësselmetriken vum Host:

  • Fräien Arbeitsspeicher (RAM): Minimum 500 MB fräie Volumen (guard_min_free_ram_mb).
  • Plaz op der Festplack: Minimum 2 GB fräie Plaz am Verzeechnes /tmp (guard_min_free_disk_mb).
  • Aufgabequewe: Limitéierung vun der Celery-Quewelängt (net méi wéi 20 ureechend Aufgaben).

Bei Iwwerschreidung vun de Limite schalt de Service temporäer de Schutz an (HTTP 503 / Noriicht am Chat), verhënnert sou eng Iwwerbelaaschtung vum Server a schéckt en direkten Alert un d'Administrateuren am Telegram.

5. Liewenszyklus vu Fichieren a Sécherheet (GDPR)

D'Architektur ass nom Zero-Data-Footprint-Modell entworf:

  • Benotzerfichieren ginn an e geschützte Volum tmp/conversions/ mat eenzegaartege Präfixe op Basis vun den Aufgabenevenementer gelueden.
  • Fichiere bleiwen strikt am Kader vun der Aarbechtssessioun zougänglech — net méi wéi 15 Minutten (900 Sekonnen).
  • Den automatesche Rommelssammler läscht d'Original- a prett Fichiere direkt nom Confirméiere vun der erfollegräicher Versendung an de Chat oder nom Ofleefe vum Sessiouns-Timeout.
  • D'PostgreSQL-Datebank späichert keng binär Fichieren oder perséinlech Dokumententexter — an den Tabelle ginn nëmmen anonymiséiert technesch Metadaten festgehalen (Formater, Gréissten a Byte, Aarbechtszäit, Statusen).

6. Universellen REST API fir extern Webservicer

De Service ass vunUfank un als e multiplatforme Backend entworf ginn. Nieft dem Bot leeft e vollwäertege geschützten programmateschen Interface fir Websäiten (zum Beispill op Django) an drëtt Botten:

  • GET /api/v1/formats — eng dynamesch JSON-Matrix vun de verfügbare Konversiounsrichtungen, synchroniséiert mat den Astellunge vu Google Tabellen.
  • POST /api/v1/convert — en universellen Endpoint, deen multipart/form-data akzeptéiert (Fichier, Zilformat, ID vum externe Client) an e pretten Byte-Stream als direkten Download zeréckgëtt.
  • Autorisatioun duerch Bearer-Tokens (WEBHOOK_REFRESH_TOKEN) mat Schutz géint Zäitattacken iwwer secrets.compare_digest.

7. Managementpanel an Observability (NiceGUI + AG Grid)

D'Iwwerwaachung vun de Geschäftszuelen an dem Systemzoustand gouf an eng nativ Single-Page Managementpanel op Basis vun NiceGUI 2.x integréiert:

  • Interaktiv Tabellen AG Grid (v32+) mat personaliséierten Excel-style Checkbox-Filtréierungen (aggrid_filters.js).
  • Iwwerwaachung vu Quewen, Verzögerunge vun API-Provideren a Ping vu PostgreSQL / Redis an Echtzäit.
  • Duerchgängeg Filtréierung no Datume mat nahtloser Integratioun vum BI-Dashboard Metabase iwwer ënnerschriwwen JWT-Tokens.