B2C · Xtream · Reseller





Arhivēšanas glabāšanas līmeņi
Trīs līmeņu arhīva sistēma 500+ vienlaicīgiem klientiem. Konfigurējiet iestatījumos > Glabāšana > Glabāšanas līmeņi. Katram līmenim ir neatkarīgs dzīves cikls, ietilpības aprēķins un rezerves darbība.
Koderis
Rakstīšanas buferis
2h karstais logs (NVMe vai tmpfs)
→ spogulis (nepārtraukts)
HDD RAID 5
50 TB, 14 dienu glabāšana
→ priekšlejupielāde pēc pieprasījuma
Atskaņošanas kešatmiņa
1 TB siltā kešatmiņa, 500+ klienti
Klienti
Segmenti, kas vecāki par mirror_min_age_minutes, tiek nepārtraukti KOPĒTI uz RAID. Write_buffer satur nepārtrauktu 2 stundu karsto logu, lai atskaņošana līdz nesenajam notiktu uz ātrās glabāšanas vietas. Segmenti tiek dzēsti no write_buffer tikai pēc evict_age_minutes (un tikai tad, ja tie ir pārbaudīti kā nokopēti). RAID vienmēr satur ilgtermiņa kopiju — nav stundas sprādziena pārraides.
Līmenis
Mērķis
Iestatījumi
Rakstīšanas buferis
Saņem segmentus 24/7, tur 2 stundu karsto logu ātrai nesenai atskaņošanai, aizsargā RAID no nejaušas IO. Ierīce var būt fizisks NVMe nodalījums (ražošana) vai tmpfs (izstrādes/testa dators bez fiziska NVMe — skat. tmpfs sadaļu zemāk).
device_path (bloka ierīce vai 'tmpfs'), tmpfs_size_pct (10-50% no MemAvailable, ja tmpfs), mirror_min_age_minutes, evict_age_minutes, flush_threshold_percent (piespiedu iztukšošanas slieksnis)
HDD RAID arhīvs
Ilgtermiņa glabāšana pilnai saglabāšanai (noklusējums 14 dienas). Saņem nepārtrauktu mirror plūsmu no write_buffer — secīga rakstīšana, bez stundas sprādzieniem. Pārdzīvo restartēšanu. RAID pārdzīvo viena diska kļūmi.
glāšanas_dienas, raid_ierīce, nginx_lokacija, min_free_percent
Atskaņošanas kešatmiņa (pēc izvēles)
Lasīšanas kešatmiņa populāriem failiem, kas vecāki par 2 stundām (piemēram, EPG atgriezeniskā atskaņošana). Aizpildīts no arhīva pēc pieprasījuma, kad tiek sasniegts popularitātes slieksnis (3 reizes / 5 min). Ierīce var būt NVMe vai tmpfs.
priekšlejupielādes_stundas, max_savienojumi, evictions_policy (sesija/lru/fifo)
live writes × 2h = write_buffer siltuma loga izmērs. Piemērs: 50 straumes × 8 Mbps × 2h ≈ 36 GB. Pievienojiet ~30% rezervi spoguļa backlog → ~50 GB write_buffer ir pietiekami 50 straumēm. RAID izmērīts pilnai glāšanai: 50 × 8 Mbps × 14 dienas ≈ 6 TB.
Stream.dvr_file_path/2 pārbauda write_buffer → playback_cache → arhīvu secībā. Segments 2 stundu karstajā logā tiek servēts no write_buffer ar natīvo ātrumu, pat ja tas pastāv arī uz RAID. Nginx X-Accel-Redirect servē failus tieši, neizmantojot Phoenix.
Katrs līmenis var izmantat RAM balstītu tmpfs virtuālo disku, nevis fizisku bloka ierīci. Noderīgi izstrādes datoriem bez brīva NVMe vai īslaicīgām testēšanas vidēm. Storage Tier kartē ierīces nolaižamajā izvēlnē ir opcija 'tmpfs (virtuālais disks no RAM)', kas aizstāj ierīces ceļa izvēlni ar procentu slīdni.
Piešķiršana tiek norādīta kā MemAvailable (no /proc/meminfo) procents — solis 10, derīgas vērtības 10/20/30/40/50. Stingrs minimums 10% (validācija noraida zemāk). Stingrs maksimums 50%. Noklusējums 30%. Uz 100 GB MemAvailable resursdatora: 10% = 10 GB, 30% = 30 GB, 50% = 50 GB. Izmērs tiek pārrēķināts un pārmontēts dzīvē, kad slīdnis tiek pārvietots un saglabāts.
Ja aprēķinātais mērķis pārsniedz 60% no pašreizējā MemAvailable, montēšana tiek noraidīta un līmenis paliek nedarbīgs (Stream.archive_path pāriet uz nākamo veselīgo līmeni). Tas novērš agresīva iestatījuma izraisītu BEAM nāvi, izmantojot OOM. Aizsardzība darbojas gan palaišanas brīdī, gan katru reizi, kad tiek nospieds Saglabāt lietotājsaskarnē.
tmpfs dzīvo RAM — visi plūstošie bufera saturs tiek ZAUDĒTI, kad resursdators tiek restartēts. Fstab ieraksts, kas tiek uzrakstīts sagatavošanas brīdī, automātiski pārmontē tukšo tmpfs nākamajā palaišanā, bet vecie segmenti neatgriežas. Mirror uz arhīvu turpinās normāli visam, kas jau bija nokopēts pirms restartēšanas — tiek zaudēts tikai pēdējais nenokopētais logs (parasti < mirror_min_age_minutes vērtība). Ražošanai izmantojiet fizisku NVMe ierīci; tmpfs ir paredzēts kā izstrādes/testa aizstājējs.
Izmantojiet tmpfs write_buffer, ja: (a) izstrādes/testa datorā nav brīva NVMe, bet vēlaties pilnu DVR cauruļvadu integrācijas testēšanai, (b) operators vēlas validēt mirror + arhīva darbību, neiegādājoties NVMe iepriekš, (c) īslaicīga testēšana, kurā zaudēšana pēc restartēšanas ir pieņemama. NEIZMANTOJIET tmpfs ražošanā — RAM ir mainīga un ir kārtas dārgāks par NVMe uz GB saglabāšanas.
Kad write līmenis ir tmpfs, StorageTierFlush izmanto stingrākus noklusējumus — mirror_min_age 2 min, evict_age 15 min (pret 5 min / 120 min fiziskajam NVMe). RAM ir dārgāks par disku, tāpēc nepārtrauktais karstais logs tiek turēts mazāks. Pārrakstiet, izmantojot vides mainīgos MIRROR_MIN_AGE_MINUTES / EVICT_AGE_MINUTES, ja nepieciešams.
Līmeņi tiek konfigurēti vienreiz caur iestatījumiem > Glabāšana > Glabāšanas līmeņi un tiek automātiski sagatavoti — nav nepieciešama manuāla mkfs/mount/fstab rediģēšana uz resursdatora. StorageTier.ensure_all_provisioned/0 tiek izpildīts katras palaišanas brīdī no SystemInitializer un ir idempotents: jau montēti līmeņi tiek izlaisti, trūkstošas ierīces tiek ignorētas, tmpfs līmeņi tiek pārmontēti tīri pēc restartēšanas.
Pirmās palaišanas brīdī (ja datubāzē nav write līmeņa), sistēma automātiski izveido write līmeni, kas balstīts uz tmpfs, ar 30% no MemAvailable piešķiršanu, montēšanas punktu /mnt/nvme_write. Tas nodrošina darbspējīgu DVR cauruļvadu no pirmā brīža jebkurā datorā ar pietiekamu RAM. Operators vēlāk var pāriet uz fizisku NVMe caur lietotājsaskarni, nezaudējot citu līmeņu iestatījumus.
Stream.archive_path/2 atgriež pirmo 'veselīgo' līmeni — write_buffer, ja tas ir montēts, rakstāms un brīvais procents pārsniedz drošības slieksni, citādi tiek izmantots arhīvs (degradēts režīms). Drošības slieksnis ir 20% tmpfs (RAM stingri), 2% bloka ierīcēm. tier_health galapunkts nodrošina informāciju par katru līmeni (montēts/rakstāms/brīvais procents) monitorings.
tmpfs_size_pct maiņa lietotājsaskarnē izraisa umount + remount ar jauno izmēru, kad tiek nospiests Saglabāt. Aktīvā DVR rakstīšana īsi tiek apturēta (montēšanas pāreja < 1 s). Ieteikums: mainiet tmpfs izmēru tikai tad, kad DVR rakstīšanas ātrums ir zems, un pēc tam pārstartējiet straumes, lai pārliecinātos, ka tās izmanto jauno montēšanas punktu.
Bāzes URL — OSTV Player
Paketes lauki
Paketu API
Paroļu politika
Pārdotāju API
Iestatījumi
Lietotāja lauki
Lietotāju pārvaldība
IPTV pārvaldība ļauj importēt un pārvaldīt IPTV kanālu sarakstus.
Kanālu sarakstus var importēt M3U vai XML formātā.
Katrs kanāls var būt saistīts ar Stream vai Mux.
Kanālus var grupēt pēc kategorijām un žanriem.
IPTV kanālu sarakstus var automātiski atjaunināt no URL.
Atjaunināšanas biežumu var iestatīt no stundas līdz dienai.
Kanālu logo tiek lejupielādēti un kešoti lokāli.
EPG dati tiek saistīti ar kanāliem pēc ID vai nosaukuma.
Kanālus var manuāli kārtot un pārsaukt.
Var iestatīt kanālu slēgšanu vai redzamību.
Kanālu sarakstu var eksportēt M3U formātā.
Pārlūkprogrammā var skatīt kanālu sarakstu un statusu.
Kanālu filtrēšana pēc nosaukuma, grupas vai statusa.
Var iestatīt rezerves URL katram kanālam.
Kanālu pārraudzība ietver savienojamības un kvalitātes pārbaudi.
Pieejami IPTV statistikas pārskati par skatīšanos.
Var integrēt ar ārējiem EPG avotiem.
M3U faila parsēšana atbalsta paplašinātos atribūtus.
Kanālu skaits netiek ierobežots.
Var izmantot vairākus M3U avotus vienlaikus.
Kanālu kategorijas var pārkārtot pēc vajadzības.
Atbalstīti Unicode kanālu nosaukumi.
IPTV sarakstu versijas tiek glabātas vēsturē.
Var atjaunot iepriekšējo saraksta versiju.
Importēšanas konflikti tiek risināti ar sapludināšanas stratēģiju.
Var iestatīt kanālu prioritāti pārslogojuma gadījumā.
Pieejama REST API IPTV pārvaldībai.
Kanālu metadatus var rediģēt manuāli.
Atbalstīti droši (HTTPS/FTPS) M3U avoti.
Kanālu importēšanas žurnāls glabā kļūdu informāciju.
Var konfigurēt HTTP galvenes M3U avota pieprasījumiem.
Pārskats
B2C API nodrošina pilnīgu satura pārvaldības, straumēšanas un autentifikācijas funkcionalitāti. Visām API izsaukumiem ir nepieciešams derīgs autentifikācijas tokens, kas iegūts no autentifikācijas gala punkta.
Autentificēt lietotāju un iegūt auth_token turpmākiem API izsaukumiem.
Metode
Gala punkts
Pieprasījuma ķermenis
Parametrs
Tips
Obligāts
Apraksts
Jā
Lietotāja pieteikšanās vārds
Lietotāja parole
Piemēra pieprasījums
Atbilžu lauki
Veiksmīga atbilde
Šifrēts autentifikācijas tokens turpmākiem API izsaukumiem
Tokēna derīguma termiņa datums/laiks ISO 8601 formātā
Piemera veiksmīgas atbildes
Kļūdas atbilde
Kļūdas apraksta ziņojums
HTTP statusa kods
Piemera kļūdas atbilde
Iegūtiet informāciju par autentificēto lietotāju, izmantojot autentifikācijas token.
Atbilžu lauki
Autentificētā lietotāja vārds
Servera ziņa (tukša ja nav)
Autentifikācijas statuss (1 = autentificēts)
Konta statuss: Aktīvs, Aizliegts, Atspējots, Proba
Konta beigu termiņš (null ja neierobežots)
Pašlaik aktīvo savienojumu skaits
Konta izveides datums ISO 8601 formātā
Atļautais maksimālais vienlaicīgo savienojumu skaits
Atļauto izlaides plūsmu formātu saraksts
Lietotāja īpašnieka/reselera nosaukums (null ja nav)
Nodrošinātāja logo attēla URL (null ja nav)
Nodrošinātāja sabrukušā logo attēla URL 208x208 (null ja nav)
Pašreizējais servera laiks ISO 8601 formātā
Piemēra pieprasījums
Iegūt kategorijas, kas filtrētas pēc tipa. Pieejamie tipi: live (straumēšana), vod (filmas), series (seriāli).
Kategorijas tips: live, vod vai series
Kategorijas ID kā virkne
Kategorijas attēlošanas nosaukums
Vecāka kategorijas ID (0, ja sakne)
Satura MD5 hash kešatmiņas invalidizācijai
Piemēra pieprasījums
Iegūstiet detalizētu informāciju par konkrētu VOD elementu, ieskaitot metadatus un plūsmu saites.
VOD straumes ID (UUID)
Vāka attēla URL
TMDB identifikators
Fona attēla URL
Žanra strings
Sižets / apraksts
Aktieri
Reitings (0-10)
Režisora vārds
Izlaiduma datums
Ilgums sekundēs
Ilgums kā formatēts strings
Kategoriju ID masīvs
1, ja pieaugušo saturs, citādi 0
VOD straumes ID
VOD tituls
Pievienošanas datums (ISO 8601)
Straumes saites URL
Video/audio kodeka metadati
TV sērijas informācija
Sērijas ID
Sezonas numurs
Sezonas nosaukums
Epizožu skaits sezonā
Sezonas pārraides datums
Sezonas apraksts / apraksts
Sezonas vada attēla URL
Karte ar sezonas numura virkni kā atslēgu. Katra vērtība ir epizožu objektu masīvs.
Epizodes objekta lauki
Epizodes ID
TMDB epizodes ID
Epizodes numurs
Epizode pievienota sērijai
Sezonas numurs
Epizodes informācija
Epizodes saites
Epizodes metadati
Tokēna derīguma termiņš ir atkarīgs no lietotāja lomas: admin = 365 dienas, pārējie = 30 dienas|Atspējoti konti nevar autentificēties (atgriež 403)|Katrs veiksmīgs ieraksts atjaunina lietotāja last_login laika zīmogu|Tokēni ir šifrēti un satur user_id, username, role un expiration
Veiksmīga atbilde (200)
Autentifikācijas tokens, kas iegūts no /auth gala punkta