B2C · Xtream · Reseller





أرشيف طبقات التخزين
نظام أرشيف ثلاثي المستويات لأكثر من 500 عميل متزامن.
التشفير
اكتب المخزن المؤقت
نافذة ساخنة لمدة ساعتين (NVMe أو tmpfs)
→ مرآة (مستمرة)
الأقراص الصلبة ريد 5
50 تيرابايت، احتفاظ لمدة 14 يومًا
→ الجلب المسبق عند الطلب
ذاكرة التخزين المؤقت للتشغيل
ذاكرة تخزين مؤقت بسعة 1 تيرابايت، لأكثر من 500 عميل
العملاء
يتم نسخ المقاطع الأقدم من Mirror_min_age_Minutes إلى RAID بشكل مستمر.
الطبقة
غاية
إعدادات
اكتب المخزن المؤقت
يستقبل المقاطع على مدار الساعة طوال أيام الأسبوع، ويحتفظ بنافذة ساخنة لمدة ساعتين للتشغيل السريع للترجيع الأخير، ويحمي RAID من عمليات الإدخال والإخراج العشوائية.
مسار_الجهاز (حظر الجهاز أو "tmpfs")، tmpfs_size_pct (10-50% MemAvailable عند tmpfs)، مرآة_دقيقة_عمر_دقيقة، إخلاء_عمر_دقيقة، تدفق_عتبة_النسبة المئوية (مشغل تدفق القوة)
أرشيف الأقراص الصلبة RAID
تخزين طويل الأمد للاحتفاظ الكامل (الافتراضي 14 يومًا).
أيام الاحتفاظ، RAID_DEVICE، nginx_location، min_free_percent
ذاكرة التخزين المؤقت للتشغيل (اختياري)
ذاكرة التخزين المؤقت من جانب القراءة للملفات الشائعة الأقدم من ساعتين (مثل متابعة EPG).
الجلب المسبق للساعات، الحد الأقصى للجلسات، سياسة الإخلاء (جلسة/lru/fifo)
الكتابة المباشرة × 2 ساعة = حجم النافذة الساخنة لـ write_buffer.
يستكشف Stream.dvr_file_path/2 write_buffer → playback_cache → الأرشيف بالترتيب.
يمكن لكل طبقة استخدام قرص tmpfs الظاهري المدعوم بذاكرة الوصول العشوائي (RAM) بدلاً من جهاز الكتلة الفعلي.
يتم تحديد التخصيص كنسبة مئوية من MemAvailable (من /proc/meminfo) - الخطوة 10، القيم الصالحة 10/20/30/40/50.
إذا تجاوز الهدف المحسوب 60% من MemAvailable الحالي، فسيتم رفض التثبيت وتبقى الطبقة غير متصلة بالإنترنت (ينتقل Stream.archive_path إلى الطبقة السليمة التالية).
يوجد tmpfs في ذاكرة الوصول العشوائي (RAM) - يتم فقدان أي محتوى مخزن مؤقت أثناء الرحلة عند إعادة تشغيل المضيف.
استخدم tmpfs لـ write_buffer عندما: (أ) لا يحتوي صندوق التطوير/الاختبار على NVMe احتياطي ولكنك لا تزال ترغب في تشغيل خط DVR الكامل لاختبار التكامل، (ب) يريد المشغل التحقق من صحة سلوك المرآة + الأرشيف دون شراء NVMe مقدمًا، (ج) اختبار سريع الزوال حيث تكون الخسارة عند إعادة التشغيل مقبولة.
عندما تكون طبقة الكتابة هي tmpfs، يستخدم StorageTierFlush إعدادات افتراضية أكثر صرامة — Mirror_min_age 2 دقيقة، evct_age 15 دقيقة (مقابل 5 دقائق / 120 دقيقة لـ NVMe الفعلي).
يتم تكوين الطبقات مرة واحدة عبر التكوين > التخزين > طبقات التخزين ويتم توفيرها تلقائيًا - لا يوجد تحرير يدوي لـ mkfs/mount/fstab على المضيف.
في التمهيد الأول (لا توجد طبقة كتابة في قاعدة البيانات)، يقوم النظام تلقائيًا بإنشاء طبقة كتابة مدعومة بـ tmpfs مع تخصيص MemAvailable بنسبة 30%، ونقطة التثبيت /mnt/nvme_write.
يقوم Stream.archive_path/1 بإرجاع الطبقة "السليمة" الأولى - write_buffer إذا تم تركيبه + writable+free_pct فوق مستوى الأمان، وإلا فسيعود إلى الأرشيف (الوضع المتدهور).
يؤدي تغيير tmpfs_size_pct في واجهة المستخدم إلى تشغيل umount + إعادة التحميل بالحجم الجديد عند الحفظ.
عنوان URL الأساسي — مشغل OSTV
حقول الحزمة
واجهة برمجة تطبيقات الحزم
سياسة كلمة المرور
واجهة برمجة تطبيقات الموزع
إعدادات
حقول المستخدم
إدارة المستخدم
عنوان URL الأساسي — مشغل OSTV
يتيح تطبيق OSTV Player للمستخدمين تغيير عنوان URL الأساسي للخادم (عنوان API).
السبب: تغيير عنوان URL الأساسي مخصص فقط للمسؤولين/المستخدمين الجذريين حتى يتمكنوا من التبديل بين الخوادم (على سبيل المثال، الإنتاج مقابل الاختبار).
حقول المستخدم
واجهة برمجة تطبيقات الحزم
إرجاع قائمة بجميع الحزم النشطة مع الأسعار وفترات الفاتورة.
قائمة مستخدمي الإدارة (الموزعين / مقدمي الخدمة).
إرجاع الرصيد الدائن لمستخدم إدارة محدد.
حقول الحزمة
واجهة برمجة تطبيقات الموزع
واجهة برمجة التطبيقات (API) للموزعين/مقدمي الخدمات.
سياسة كلمة المرور
كلمة المرور مطلوبة عند إنشاء مشترك.
الحد الأدنى 8 أحرف
حرف كبير واحد على الأقل (A-Z)
حرف خاص واحد على الأقل (!@#$%^&* وما إلى ذلك)
ينطبق على واجهة المستخدم وواجهة برمجة التطبيقات.
إعدادات
مستوى التزويد التلقائي والسلامة
الكشف التلقائي عن السعة + نظام الملفات: عند تحديد NVMe مجاني من القائمة المنسدلة، تتم قراءة السعة (جيجابايت) من lsblk -bn -o SIZE وFS الحالي من blkid (مع احتياطي القرص بالكامل).
آلية تدفق الطبقة – المرآة المستمرة
يعمل StorageTierFlush GenServer كل 60 ثانية.
لماذا تتفوق المرآة المستمرة على "الانتظار 60 دقيقة، نقل الدفعة": (1) يكون تحميل RAID متساويًا - لا يوجد 5 جيجابايت من الاندفاعات عند حدود الساعة، فقط القليل من المقاطع 7 ميجابايت؛
أمان المقطع قيد التقدم: تقوم المرآة فقط باختيار الملفات الأقدم من MIRROR_MIN_AGE_MINUTES عبر البحث -mmin +5.
الضبط لكل عملية نشر (.env)
500-1000
قاعدة التحجيم:
تقويم معاينة DVR
تعرض علامة التبويب معاينة DVR تقويمًا مقدمًا من الخادم يسلط الضوء فقط على الأيام التي توجد فيها التسجيلات على القرص.
الأيام التي تحتوي على تسجيلات قابلة للنقر عليها (باللون الأزرق) - يؤدي النقر فوق إلى ملء إدخال التاريخ والوقت مسبقًا بهذا اليوم عند الساعة 00:00؛
تم تنفيذه في Stream.available_dvr_days/1 من خلال البحث عن -minديبوث 4 -ماكسديبيت 4 -تايب د على كل طبقة تثبيت؛
ملخص
توفر واجهة برمجة التطبيقات B2C (الأعمال إلى المستهلك) المصادقة والوصول إلى الدفق لتطبيقات مشغل المستخدم النهائي.
قم بمصادقة المستخدم واحصل على auth_token لاستدعاءات API اللاحقة.
طريقة
نقطة النهاية
هيئة الطلب
المعلمة
يكتب
مطلوب
وصف
نعم
اسم تسجيل دخول المستخدم
كلمة مرور المستخدم
طلب مثال
مجالات الاستجابة
استجابة النجاح (200)
رمز المصادقة المشفر لاستدعاءات API اللاحقة
تاريخ/وقت انتهاء صلاحية الرمز المميز بتنسيق ISO 8601
مثال على استجابة النجاح
الاستجابة للخطأ (403)
رسالة وصف الخطأ
رمز حالة HTTP
مثال على الاستجابة للخطأ
استرجع معلومات حول المستخدم الذي تمت مصادقته باستخدام رمز المصادقة المميز.
مجالات الاستجابة
اسم المستخدم للمستخدم المصادق عليه
رسالة الخادم (فارغة في حالة عدم وجودها)
حالة المصادقة (1 = مصادق عليها)
حالة الحساب: نشط، محظور، معطل، تجريبي
تاريخ انتهاء الحساب (فارغ إذا كان غير محدود)
عدد الاتصالات النشطة الحالية
تاريخ إنشاء الحساب بتنسيق ISO 8601
الحد الأقصى المسموح به من الاتصالات المتزامنة
قائمة تنسيقات دفق الإخراج المسموح بها
اسم الموفر لمالك/بائع المستخدم (خالي في حالة عدم وجوده)
عنوان URL لصورة شعار الموفر (خالي في حالة عدم وجوده)
عنوان URL لصورة شعار طي الموفر 208 × 208 (خالي في حالة عدم وجوده)
وقت الخادم الحالي بتنسيق ISO 8601
طلب مثال
استرداد الفئات التي تمت تصفيتها حسب النوع.
نوع الفئة: مباشر أو فيديو أو مسلسل
معرف الفئة كسلسلة
اسم عرض الفئة
معرف الفئة الأصلية (0 إذا كان الجذر)
تجزئة محتوى MD5 لإبطال ذاكرة التخزين المؤقت
طلب مثال
استرجع معلومات مفصلة عن عنصر VOD محدد، بما في ذلك البيانات التعريفية وروابط الدفق.
معرف دفق VOD (UUID)
عنوان URL لصورة الغلاف
معرف TMDB
عنوان URL لصورة الخلفية
سلسلة النوع
مؤامرة / وصف
أعضاء فريق التمثيل
قيمة التصنيف (0-10)
اسم المدير
تاريخ الافراج عنه
المدة بالثواني
المدة كسلسلة منسقة
مجموعة من معرفات الفئة
1 إذا كان المحتوى للبالغين، 0 بخلاف ذلك
معرف دفق VOD
عنوان VOD
تاريخ الإضافة (ISO 8601)
دفق عناوين URL الارتباط
البيانات التعريفية لترميز الفيديو/الصوت
استرجع معلومات المسلسل مع قوائم الموسم والحلقات الكاملة، مجمعة حسب رقم الموسم.
معرف السلسلة (UUID)
رقم الموسم
اسم عرض الموسم
عدد حلقات الموسم
تاريخ الهواء لهذا الموسم
نظرة عامة على الموسم / الوصف
عنوان URL لصورة غلاف الموسم
خريطة مرتبطة بسلسلة رقم الموسم.
حقول كائن الحلقة
معرف الحلقة
معرف حلقة TMDB
رقم الحلقة ضمن الموسم
تاريخ الإضافة (ISO 8601)
رقم الموسم
كائن معلومات الحلقة (نفس بنية معلومات VOD)
دفق عناوين URL الارتباط
البيانات التعريفية لترميز الفيديو/الصوت
تعتمد انتهاء صلاحية الرمز المميز على دور المستخدم: المشرف = 365 يومًا، أخرى = 30 يومًا|لا يمكن مصادقة الحسابات المعطلة (إرجاع 403)|كل تسجيل دخول ناجح يقوم بتحديث الطابع الزمني لتسجيل الدخول الأخير للمستخدم|الرموز المميزة مشفرة وتحتوي على معرف المستخدم واسم المستخدم والدور وانتهاء الصلاحية
استجابة النجاح (200)
تم الحصول على رمز المصادقة من نقطة النهاية /auth