All File Converter सेवा को आधुनिक Python 3.12 अतुल्यकालिक (asynchronous) स्टैक पर आधारित एक स्केलेबल वितरित SaaS-सिस्टम के रूप में डिज़ाइन किया गया है। आर्किटेक्चर को स्वतंत्र परतों में विभाजित किया गया है: नेटवर्क इवेंट रिसेप्शन, टास्क ऑर्केस्ट्रेशन, भारी बाइनरी प्रक्रियाओं का आइसोलेटेड निष्पादन, और विश्लेषणात्मक सर्किट।
1. सामान्य तकनीकी स्टैक और सिस्टम आर्किटेक्चर
प्लेटफ़ॉर्म उच्च थ्रूपुट (high-throughput), न्यूनतम मेमोरी खपत और विफलता सुरक्षा के सिद्धांतों पर आधारित है:
- Telegram Bot Framework:
Aiogram 3.13, जो गुप्त टोकन सत्यापन और कस्टम संदेश जीवनचक्र फ़िल्टर के साथ Webhook मोड में काम करता है। - वेब-गेట్वे और REST API: Uvicorn ASGI-सर्वर पर आधारित
FastAPI, जिसमें बाइनरी फ़ाइलों की अतुल्यकालिक स्ट्रीमिंग (FileResponse) औरBackgroundTasksके माध्यम से पृष्ठभूमि सफ़ाई शामिल है। - क्यू ब्रोकर और कैश:
Redis 7(Celery कार्य प्रबंधन, रेस कंडीशन लॉक, ब्रूट-फोर्स सुरक्षा, सत्र कैशिंग)। - बैकग्राउंड निष्पादक (Task Queue):
Celery 5.4, जिसमेंconverter_workerआइसोलेटेड कंटेनर में समर्पित वर्कर्स का पूल होता है। - डेटाबेस:
PostgreSQL 16, जिसमेंSQLAlchemy 2.0 (asyncpg)ORM परत, लगातार कनेक्शन पूल (20+10 overflow) और असफल लेनदेन के लिए ऑटो-रीry (@db_retry) शामिल हैं। - नेटवर्क सर्किट: Middleware के माध्यम से सर्वर तक सीधे IP एक्सेस को ब्लॉक करने के साथ
Cloudflare Zero Trustके माध्यम से टनलिंग।
2. अतुल्यकालिक कतारें और भारी गणनाओं का आइसोलेशन (Celery + Redis)
मीडिया फ़ाइलों और ऑफिस पैकेटों का रूपांतरण CPU और RAM पर चरम भार डालता है। ताकि भारी संचालन के दौरान Telegram में आने वाले संदेशों के प्रसंस्करण की प्रक्रिया अवरुद्ध न हो, कड़े आइसोलेशन को लागू किया गया है:
- Redis में कार्यों का प्रतिनिधिमंडल: प्रारूप चुनने पर, Telegram हैंडलर
PROCESSINGस्थिति के साथ DB में कार्य दर्ज करता है और Celery के माध्यम सेtasks.execute_conversionकतार में कार्य रखता है। - आइसोलेटेड वर्कर कंटेनर: रूपांतरण उपयोगिताओं का निष्पादन अपनी स्वयं की प्रोसेसर समय और मेमोरी सीमा के साथ एक अलग Linux कंटेनर में होता है।
- हैंग कंट्रोल और टाइमआउट: बाहरी उपयोगिता कॉल को सख्त समय नियंत्रण के साथ अतुल्यकालिक संदर्भ में लपेटा जाता है (
conversion_timeout_sec = 180)। सीमा पार होने पर, प्रक्रिया कोproc.kill()के माध्यम से जबरन समाप्त कर दिया जाता है, जिससे संसाधन मुक्त हो जाते हैं। - दोष-सहनीय Fallback: Redis ब्रोकर के अस्थायी रूप से अनुपलब्ध होने पर, कार्य स्वचालित रूप से स्थानीय अतुल्यकालिक डिस्पैचर द्वारा इंटरसेप्ट किया जाता है और उपयोगकर्ता के लिए किसी विफलता के बिना सीधे निष्पादित किया जाता है।
3. विशेष रूपांतरण इंजन का पाइपलाइन
प्रत्येक डेटा प्रकार के लिए अत्यधिक विशिष्ट मूल उपयोगिताओं और पुस्तकालयों का उपयोग किया जाता है:
- दस्तावेज़ और तालिकाएं (LibreOffice): DOCX, XLSX, PPTX, RTF, ODT को PDF या टेक्स्ट फ़ाइलों में सटीक रूप से रेंडर करने के लिए हेडलेस ऑफिस पैकेज (
soffice --headless)। - स्ट्रीमिंग ऑडियो और वीडियो (FFmpeg): वीडियो कोडेक (H.264), ऑडियो कोडेक (MP3, OGG Opus) का मल्टीथ्रेडेड ट्रांसकोडिंग, साउंडट्रैक निकालना, GIF जनरेशन (Lanczos फ़िल्टर) और Telegram वीडियो संदेशों का चौकोर क्रॉपिंग (1:1)।
- हाई-स्पीड PDF प्रोसेसिंग (Poppler Utils):
pdftotext(UTF-8 में फ़ॉर्मेट किए गए टेक्स्ट को तुरंत निकालना) औरpdftoppm(LibreOffice ओवरहेड के बिना रास्टर छवियों में PDF का पेज-दर-पेज रेंडरिंग) उपयोगिताएँ। - ऑप्टिकल कैरेक्टर रिकग्निशन (Tesseract OCR): 40 से अधिक भाषाओं में स्कैन और तस्वीरों से मुद्रित पाठ का तंत्रिका नेटवर्क निष्कर्षण।
- रास्टर और वेक्टर ग्राफिक्स:
Pillowलाइब्रेरी (HEIC और AVIF प्रारूपों के लिए समर्थन सहित), वेक्टर छवियों के लिएCairoSVGऔर एनिमेटेड Telegram स्टिकर (.TGS) के लिएlottie। - पुस्तकें, उपशीर्षक और फ़ॉन्ट:
Calibreइंजन (ebook-convert), उपशीर्षक पार्सरpysubs2(SRT, VTT, ASS, SSA) और फ़ॉन्ट कंपाइलरfonttools(WOFF2 में Brotli-कंप्रेशन)।
4. संसाधन निवारक सुरक्षा (System Guard)
मेमोरी की कमी (OOM Killer) के कारण सर्वर क्रैश होने से बचाने के लिए, निवारक डायग्नोस्टिक्स सेवा System Guard को लागू किया गया है। प्रसंस्करण के लिए फ़ाइल स्वीकार करने से पहले, सिस्टम होस्ट के प्रमुख मेट्रिक्स की जाँच करता है:
- मुफ्त रैंडम एक्सेस मेमोरी (RAM): न्यूनतम 500 MB खाली वॉल्यूम (
guard_min_free_ram_mb)। - डिस्क स्थान:
/tmpनिर्देशिका में न्यूनतम 2 GB खाली स्थान (guard_min_free_disk_mb)। - कार्य कतार: Celery कतार लंबाई की सीमा (20 से अधिक लंबित कार्य नहीं)।
सीमा पार होने पर, सेवा अस्थायी रूप से सुरक्षा सक्षम करती है (HTTP 503 / चैट में संदेश), जिससे सर्वर ओवरलोड से बचता है और Telegram में प्रशासकों को तुरंत अलर्ट भेजता है।
5. फ़ाइल जीवनचक्र और सुरक्षा (GDPR)
आर्किटेक्चर को Zero-Data-Footprint मॉडल के अनुसार डिज़ाइन किया गया है:
- उपयोगकर्ता फ़ाइलों को कार्य पहचानकर्ताओं के आधार पर अद्वितीय उपसर्गों के साथ सुरक्षित वॉल्यूम
tmp/conversions/में अपलोड किया जाता है। - फ़ाइलें सख्ती से कार्य सत्र के भीतर उपलब्ध रहती हैं — 15 मिनट से अधिक नहीं (900 सेकंड)।
- चैट में सफल भेजने की पुष्टि के तुरंत बाद या सत्र टाइम-аут समाप्त होने पर स्वचालित कचरा संग्रहकर्ता (garbage collector) मूल और तैयार फ़ाइलों को मिटा देता है।
- PostgreSQL डेटाबेस बाइनरी फ़ाइलों या दस्तावेज़ों के व्यक्तिगत पाठ को संग्रहीत नहीं करता है — तालिकाओं में केवल अज्ञात तकनीकी मेटाडेटा तय किए जाते हैं (प्रारूप, बाइट्स में आकार, काम करने का समय, स्थितियाँ)।
6. बाहरी वेब सेवाओं के लिए सार्वभौमिक REST API
सेवा को मूल रूप से एक मल्टी-प्लेटफ़ॉर्म बैकएंड के रूप में डिज़ाइन किया गया है। बॉट के साथ-साथ, वेबसाइटों (उदाहरण के लिए, Django पर) और तृतीय-पक्ष बॉट के लिए एक पूर्ण सुरक्षित प्रोग्रामेटिक इंटरफ़ेस काम करता है:
GET /api/v1/formats— Google Sheets सेटिंग्स के साथ सिंक्रनाइज़ उपलब्ध रूपांतरण दिशाओं का गतिशील JSON-मैट्रिक्स।POST /api/v1/convert— सार्वभौमिक एंडपॉइंट, जोmultipart/form-data(फ़ाइल, लक्ष्य प्रारूप, बाहरी क्लाइंट ID) स्वीकार करता है और सीधे डाउनलोड के रूप में तैयार बाइट स्ट्रीम देता है।secrets.compare_digestके माध्यम से समय-आधारित हमलों से सुरक्षा के साथ Bearer टोकन (WEBHOOK_REFRESH_TOKEN) द्वारा प्राधिकरण।
7. नियंत्रण कक्ष और Observability (NiceGUI + AG Grid)
व्यापारिक संकेतकों और सिस्टम स्थिति की निगरानी को NiceGUI 2.x के आधार पर मूल Single-Page नियंत्रण कक्ष में लाया गया है:
- कस्टम Excel-शैली चेकबॉक्स फ़िल्टर (
aggrid_filters.js) के साथ इंटरैक्टिव तालिकाएंAG Grid (v32+)। - वास्तविक समय में कतारों, API प्रदाता विलंब और PostgreSQL / Redis पिंग की निगरानी।
- हस्ताक्षर किए गए JWT टोकन के माध्यम से
MetabaseBI-डैशबोर्ड के निर्बाध एकीकरण के साथ तिथियों द्वारा एंड-टू-एंड फ़िल्टरिंग।