// деңгей: vasic-util-secondary · тапсырыс 21
Catalogizer Өндірістелицензия: UNVERIFIED
Көзі
- vasic-digital/Catalogizer
- vasic-digital/Media-Types-TS
- vasic-digital/Catalogizer-API-Client-TS
- vasic-digital/Media-Player-React
- vasic-digital/Media-Browser-React
- vasic-digital/Collection-Manager-React
- vasic-digital/Dashboard-Analytics-React
- vasic-digital/Auth-Context-React
Көп протоколды медиа коллекциясын басқару — барлығын анықтау, каталогтау және байыту.
Өндірістік деңгейдегі көп протоколды медиа кітапхана менеджері. Go/Gin REST API SMB/FTP/NFS/WebDAV/жергілікті көздерден 50-дан астам медиа түрін анықтап, TMDB/IMDB/MusicBrainz/Steam және басқа дереккөздерден байытады, ал шифрланған SQLCipher дерекқорында нақты уақыттағы React веб-қосымшасын ұсынады.
Көпшілік медиа менеджерлер сізден алдымен берілуді талап етеді: барлығын бір дискке, бір пішімге, бір түрге біріктіріңіз, тек содан кейін көмектесеміз дейді. Catalogizer керісінше ойлайды — сіздің коллекцияңыз қай жерде орналасса да, NAS бөлімшелері мен келіспейтін протоколдар арасында шашыраңқы болса да, ол сонда кездеседі. Ол сақтау жүйелерінің пайдаланатын протоколдарын — SMB/CIFS, FTP/FTPS, NFS, WebDAV және жергілікті файлдық жүйелерді бірыңғай клиенттік абстракция арқылы қолдайды. Сондықтан Windows бөлімшесі, FTP мұрағаты және WebDAV қосылымы жоғары деңгейде бірдей көрініп, араластырылып, ауыстырылып немесе қолданба кодын өзгертпей алынып тасталуы мүмкін. Go бекенді (Gin REST API) осы көздерді үздіксіз бақылап, пайда болған файлдарды 50-дан астам медиа түрін (кино, теледидар, музыка, ойындар, бағдарламалық қамтамасыз ету, деректі фильмдер) анықтап, жіктейді және әрбір элементті TMDB, IMDB, TVDB, MusicBrainz, Spotify, Steam және басқа дереккөздерден байытады. Нәтижесінде қарапайым файл атауы толық сипатталған каталог жазбасына айналып, суреттер, актерлер құрамы және метадеректермен толықтырылады. Нәтижелер WebSockets арқылы TypeScript React алдыңғы жағына ағынымен жіберіледі, сондықтан кітапхана қосу кезінде тікелей жаңартылып отырады, қолмен жаңарту қажет емес. Метадеректердің әрбір байты шифрланған SQLCipher дерекқорында сақталып, JWT негізіндегі рөлдік аутентификация арқылы қорғалған.
Көпшілік каталогтаушылар бір бөлімше ажыраған кезде тыныштан құлайды, ал Catalogizer бұзылыс кезінде де пайдалы болып қалады. Уақытша SMB ақауы экспоненциалды кері қосылу, өлі хостқа соққыны тоқтататын схема, үздіксіз денсаулық мониторингі және соңғы белгілі жақсы күйден пайдаланушы сұраныстарына жауап беретін метадеректер кеші арқылы өтеледі. Бұл «бір NAS қайта жүктелгендіктен бүкіл қолданба істемейді» және «бір көз бұзылған, бірақ басқалары жұмыс істейді» арасындағы айырмашылық. Каталогтаудан басқа, ол коллекция үшін операциялық құрал ретінде де қызмет етеді: өсу трендтері мен сапа/нұсқаларды бақылау бойынша талдаулар, кәсіби PDF есептерді жасау, PDF-тен сурет/мәтін/HTML түрлендіру қызметі, сүйіктілерді экспорттау/импорттау (JSON/CSV), сондай-ақ S3, Google Cloud Storage немесе жергілікті бумаларға синхрондау. Және ол үлкен монолит емес — ол әдейі құрастырылған 21 қайта пайдаланылатын digital.vasic.* Go субмодульдерінен және TypeScript клиенттік пакеттерінен тұрады. Әрқайсысы жеке тесттелген және нұсқаланған, сондықтан Catalogizer-ді іске қосатын аутентификация, файлдық жүйе, ағындық беру және бақылау бөліктері кеңірек өнімдер отбасын да қуаттайды. Сапа тексеруі өзін-өзі баяндау емес: Challenges фреймворкі және HelixQA әрбір жарияланған мүмкіндікті дәлелдерге негізделген тексеру арқылы растайды.
Catalogizer — өз серверіңізде орналастырылатын медиа коллекциясын басқару жүйесі. Ол SMB, FTP, NFS, WebDAV және жергілікті файлдық жүйелер бойынша медианы автоматты түрде анықтап, санақтайды, жіктейді, нақты уақытта бақылайды, шифрланған сақтауды, сыртқы метадеректермен байытуды және жоғары өнімділікке негізделген React интерфейсін қолдайды.
Қазіргі медиа менеджерлері бір ғана сақтау бекендісін және бір ғана медиа түрін ескереді. Шын мәніндегі коллекциялар көптеген NAS бөлімшелері мен протоколдары арасында орналасады, бөлімшелер үзілгенде бұзылады және фильмдерді, музыканы, ойындарды, бағдарламалық қамтамасыз етуді араластырады. Catalogizer барлық протоколдарды бірдей қарастыру, тұрақсыз желілік сақтауды өткізу және барлығына бір ғана беделді, байытылған, шифрланған каталог ұсыну үшін құрастырылды.
Ол әдетте бірнеше бөлек құралдарды қажет ететін нәрсені бір өзіндік хостингтік, шифрланған пакетке біріктіреді: әрбір сақтау бекендісін бірдей қарастыратын протоколға байланыссыз қабылдау, сақтаудың үзілуі кезінде каталогты тірі ұстайтын төзімділік (олармен бірге құлап қалмайтын) және шикі файлдарды шолуға болатын, атрибутталған кітапханаға айналдыратын байытудың көп провайдерлік жүйесі. Ажыратылған модульдік архитектураның нәтижесі кумулятивті: файлдық жүйе клиентіне берілетін қатаң түзету немесе жаңа провайдерлік плагин бір рет орнатылып, әрбір тұтынушыға әсер етеді, сондықтан Catalogizer оны қоршаған инфрақұрылыммен бірге тұрақты түрде жақсарады. Қысқасы, бұл медиа индексі мен медиа *жүйесі* арасындағы айырмашылық — сіздің иелігіндегі, тұрақсыз инфрақұрылымды өткізетін және ішкі құрылымы дәлелденген, алдында уәде етілмеген жүйе.
- Бір интерфейс арқылы біріктірілген көппротоколдық файлдық жүйе клиенті (SMB/FTP/NFS/WebDAV/жергілікті).
- Сақтаудың үзілуі кезінде каталогты пайдалануға болатындай офлайн кэш + схемалық үзілуші.
- 21 қайта пайдаланылатын
digital.vasic.*Go субмодуліне және TS клиенттік модульдерге толық ажырату. - Қалпында шифрланған каталог (SQLCipher) және UI-ға нақты уақыттағы WebSocket синхрондау.
- Challenges фреймворкі және HelixQA интеграциясы арқылы дәлелденген сапалық бақылау.
- Тұрақсыз желілік сақтау: экспоненциалдық кері шегіну, схемалық үзілуші, денсаулық тексеруі және көздер жетімсіз болғанда кэштегі метадеректерді беретін эвикциялық саясатпен шешілді.
- Протоколдардың әртүрлілігі: жоғары деңгейлерге протоколдар туралы хабардар болмау үшін әрбір протоколды ортақ
digital.vasic.filesystemклиенті арқылы абстракциялау арқылы шешілді. - Деректер қауіпсіздігі: SQLCipher қалпындағы шифрлау және JWT/RBAC аутентификациясы мен сұраныстарды тазарту миддлвариі арқылы шешілді.
- Масштабтағы қолдау: барлық жалпы логиканы біртұтас жүйе емес, жеке тексерілетін субмодульдерге ажырату арқылы шешілді.
- Go + Gin — үздіксіз мониторинг жүктемелері үшін жоғары өнімділіктегі REST API ядросы (
catalog-api); параллелизм мен өткізу қабілеті үшін таңдалды. - TypeScript + React + Tailwind (Vite) — нақты уақытта жаңартылатын жауапты
catalog-webUI. - WebSockets — бекенд хабы мен UI арасындағы тікелей деректер синхрондауы.
- SQLCipher (шифрланған SQLite) — метадеректер қорының қалпында шифрлануы;
digital.vasic.databaseарқылы екі SQLite/PostgreSQL қолдауы. - SMB/FTP/NFS/WebDAV клиенттері —
digital.vasic.filesystemарқылы көппротоколдық қабылдау. - Сыртқы метадеректер API-лары (TMDB, IMDB, TVDB, MusicBrainz, Spotify, Steam) — байыту үшін провайдерлік плагиндер.
- Prometheus + OpenTelemetry —
digital.vasic.observabilityарқылы метрикалар/іздер. - Docker / құрастыру контейнері — қайталанғыш құрастырулар (Tauri/Rust
catalogizer-builderарқылы бағытталған). - Redis —
digital.vasic.cache/ratelimiterарқылы кэш пен жылдамдықты шектеу. - S3 / Google Cloud Storage — бұлттық синхрондау және бақылау нүктелерінің сақтауы.