B2C · Xtream · Reseller





সংরক্ষণাগার সঞ্চয় স্তর
500+ সমসাময়িক ক্লায়েন্টদের জন্য তিন-স্তরের সংরক্ষণাগার সিস্টেম।
এনকোডার
বাফার লিখুন
2 ঘন্টা হট উইন্ডো (NVMe বা tmpfs)
→ আয়না (একটানা)
HDD RAID 5
50 টিবি, 14 দিন ধরে রাখা
→ চাহিদা অনুযায়ী প্রিফেচ
প্লেব্যাক ক্যাশে
1 টিবি উষ্ণ ক্যাশে, 500+ ক্লায়েন্ট
ক্লায়েন্টদের
mirror_min_age_minutes-এর চেয়ে পুরানো বিভাগগুলি ক্রমাগত RAID-এ কপি করা হয়৷
স্তর
উদ্দেশ্য
সেটিংস
বাফার লিখুন
সেগমেন্টগুলি 24/7 গ্রহণ করে, দ্রুত সাম্প্রতিক-রিওয়াইন্ড প্লেব্যাকের জন্য 2 ঘন্টা হট উইন্ডো ধারণ করে, RAID কে এলোমেলো IO থেকে রক্ষা করে৷
device_path (ডিভাইস ব্লক বা 'tmpfs'), tmpfs_size_pct (tmpfs হলে 10-50% মেম উপলভ্য), mirror_min_age_minutes, evict_age_minutes, flush_threshold_percent (ফোর্স ফ্লাশ ট্রিগার)
HDD RAID আর্কাইভ
সম্পূর্ণ ধরে রাখার জন্য লং-টেইল স্টোরেজ (ডিফল্ট 14 দিন)।
ধরে রাখার_দিন, রেইড_ডিভাইস, nginx_location, min_free_percent
প্লেব্যাক ক্যাশে (ঐচ্ছিক)
2 ঘন্টার বেশি পুরানো জনপ্রিয় ফাইলগুলির জন্য রিড-সাইড ক্যাশে (যেমন EPG ক্যাচ-আপ)।
prefetch_hours, max_sessions, eviction_policy (session/lru/fifo)
লাইভ রাইট × 2h = write_buffer হট উইন্ডো সাইজ।
Stream.dvr_file_path/2 প্রোব লিখুন_বাফার → প্লেব্যাক_ক্যাশে → আর্কাইভ ক্রমানুসারে।
প্রতিটি স্তর একটি শারীরিক ব্লক ডিভাইসের পরিবর্তে একটি RAM-ব্যাকড tmpfs ভার্চুয়াল ডিস্ক ব্যবহার করতে পারে।
বরাদ্দকরণ MemAvailable এর শতাংশ হিসাবে নির্দিষ্ট করা হয়েছে (/proc/meminfo থেকে) — ধাপ 10, বৈধ মান 10/20/30/40/50।
গণনা করা লক্ষ্যমাত্রা বর্তমান মেমঅ্যাভেলেবলের 60% ছাড়িয়ে গেলে, মাউন্টটি প্রত্যাখ্যান করা হয় এবং স্তরটি অফলাইনে থাকে (স্ট্রিম.আর্কাইভ_পথ পরবর্তী স্বাস্থ্যকর স্তরে পড়ে)।
tmpfs RAM-তে থাকে — হোস্ট রিবুট করার সময় যেকোনো ইন-ফ্লাইট বাফার সামগ্রী হারিয়ে যায়।
write_buffer-এর জন্য tmpfs ব্যবহার করুন যখন: (a) dev/test box-এ কোনো অতিরিক্ত NVMe নেই কিন্তু আপনি এখনও ইন্টিগ্রেশন পরীক্ষার জন্য সম্পূর্ণ DVR পাইপলাইন চালাতে চান, (b) অপারেটর NVMe আপ-ফ্রন্ট না কিনে মিরর + আর্কাইভ আচরণ যাচাই করতে চায়, (c) ক্ষণস্থায়ী টেস্টিং যেখানে ক্ষতি-গ্রহণযোগ্য।
যখন লেখার স্তরটি tmpfs হয়, তখন স্টোরেজটিয়ারফ্লাশ আরও শক্ত ডিফল্ট ব্যবহার করে — mirror_min_age 2 মিনিট, evict_age 15 মিনিট (বনাম 5 মিনিট / ভৌত NVMe-এর জন্য 120 মিনিট)।
স্তরগুলি একবার কনফিগার > স্টোরেজ > স্টোরেজ টিয়ারের মাধ্যমে কনফিগার করা হয় এবং স্বয়ংক্রিয়ভাবে প্রভিশন করা হয় — হোস্টে কোনো ম্যানুয়াল mkfs/mount/fstab সম্পাদনা করা হয় না।
প্রথম বুটে (DB-তে কোন লেখার স্তর নেই), সিস্টেমটি 30% MemAvailable বরাদ্দ, মাউন্ট পয়েন্ট /mnt/nvme_write সহ একটি tmpfs-ব্যাকড লেখার স্তর স্বয়ংক্রিয়ভাবে তৈরি করে।
Stream.archive_path/1 প্রথম 'স্বাস্থ্যকর' স্তর ফিরিয়ে দেয় — write_buffer যদি সেফটি ফ্লোরের উপরে+writable+free_pct মাউন্ট করা থাকে, অন্যথায় আর্কাইভে ফিরে আসে (অপমানিত মোড)।
UI-তে tmpfs_size_pct পরিবর্তন করা সেভ-এ নতুন আকারের সাথে umount + remount ট্রিগার করে।
বেস URL — OSTV প্লেয়ার
প্যাকেজ ক্ষেত্র
প্যাকেজ API
পাসওয়ার্ড নীতি
রিসেলার API
সেটিংস
ব্যবহারকারীর ক্ষেত্র
ব্যবহারকারী ব্যবস্থাপনা
বেস URL — OSTV প্লেয়ার
OSTV প্লেয়ার অ্যাপ্লিকেশন ব্যবহারকারীদের সার্ভার বেস URL (API ঠিকানা) পরিবর্তন করতে দেয়।
কারণ: বেস ইউআরএল পরিবর্তন করা শুধুমাত্র প্রশাসক/রুট ব্যবহারকারীদের উদ্দেশ্যে করা হয়েছে যাতে তারা সার্ভারের মধ্যে পরিবর্তন করতে পারে (যেমন উৎপাদন বনাম পরীক্ষা)।
ব্যবহারকারীর ক্ষেত্র
প্যাকেজ API
মূল্য এবং বিলিং সময়কাল সহ সমস্ত সক্রিয় প্যাকেজের একটি তালিকা প্রদান করে।
ব্যবস্থাপনা ব্যবহারকারীদের তালিকা (পুনর্বিক্রেতা / প্রদানকারী)।
একটি নির্দিষ্ট ব্যবস্থাপনা ব্যবহারকারীর জন্য ক্রেডিট ব্যালেন্স ফেরত দেয়।
প্যাকেজ ক্ষেত্র
রিসেলার API
রিসেলার/প্রোভাইডারদের জন্য API।
পাসওয়ার্ড নীতি
একটি গ্রাহক তৈরি করার সময় পাসওয়ার্ড প্রয়োজন.
ন্যূনতম 8 অক্ষর
কমপক্ষে ১টি বড় হাতের অক্ষর (A-Z)
কমপক্ষে 1টি বিশেষ অক্ষর (!@#$%^&* ইত্যাদি)
UI এবং API এ প্রযোজ্য।
সেটিংস
স্তর স্বয়ংক্রিয়-বিধান এবং নিরাপত্তা
ক্যাপাসিটি + ফাইলসিস্টেম স্বয়ংক্রিয়-সনাক্তকরণ: যখন ড্রপডাউন থেকে একটি বিনামূল্যের NVMe নির্বাচন করা হয়, তখন ক্ষমতা (GB) lsblk -bn -o SIZE থেকে এবং বর্তমান FS blkid থেকে (পুরো-ডিস্ক ফলব্যাক সহ) পড়া হয়।
টায়ার ফ্লাশ মেকানিজম — ক্রমাগত আয়না
StorageTierFlush GenServer প্রতি ৬০ সেকেন্ডে চলে।
কেন ক্রমাগত মিরর বিট করে "60 মিনিট অপেক্ষা করুন, ব্যাচ-মুভ": (1) RAID লোড সমান - ঘন্টার সীমানায় 5GB বিস্ফোরিত হয় না, শুধুমাত্র 7MB সেগমেন্টের ট্রিকল;
ইন-প্রোগ্রেস সেগমেন্ট নিরাপত্তা: মিরর শুধুমাত্র MIRROR_MIN_AGE_MINUTES-এর থেকে পুরানো ফাইল-মিমিন +5-এর মাধ্যমে বাছাই করে।
প্রতি-স্থাপন টিউনিং (.env)
500-1000
আকার নির্ধারণের নিয়ম:
DVR পূর্বরূপ ক্যালেন্ডার
ডিভিআর প্রিভিউ ট্যাব একটি সার্ভার-রেন্ডার করা ক্যালেন্ডার দেখায় যা শুধুমাত্র সেই দিনগুলিকে হাইলাইট করে যেগুলির জন্য ডিস্কে রেকর্ডিং বিদ্যমান।
রেকর্ডিং সহ দিনগুলি ক্লিকযোগ্য (নীল) — ক্লিক করলে 00:00-এ সেই দিনের সাথে তারিখের ইনপুট প্রাক-পূর্ণ হয়;
প্রতিটি টিয়ার মাউন্টে find -mindepth 4 -maxdepth 4 -type d এর মাধ্যমে Stream.available_dvr_days/1 এ প্রয়োগ করা হয়েছে;
ওভারভিউ
B2C (ব্যবসা-থেকে-ভোক্তা) API শেষ-ব্যবহারকারী প্লেয়ার অ্যাপ্লিকেশনগুলির জন্য প্রমাণীকরণ এবং স্ট্রিম অ্যাক্সেস প্রদান করে।
একজন ব্যবহারকারীকে প্রমাণীকরণ করুন এবং পরবর্তী API কলগুলির জন্য একটি auth_token পান।
পদ্ধতি
শেষবিন্দু
রিকোয়েস্ট বডি
প্যারামিটার
টাইপ
প্রয়োজন
বর্ণনা
হ্যাঁ
ব্যবহারকারী লগইন নাম
ব্যবহারকারীর পাসওয়ার্ড
উদাহরণ অনুরোধ
প্রতিক্রিয়া ক্ষেত্র
সাফল্যের প্রতিক্রিয়া (200)
পরবর্তী API কলগুলির জন্য এনক্রিপ্ট করা প্রমাণীকরণ টোকেন
ISO 8601 ফর্ম্যাটে টোকেনের মেয়াদ শেষ হওয়ার তারিখ/সময়
উদাহরণ সফল প্রতিক্রিয়া
ত্রুটি প্রতিক্রিয়া (403)
ত্রুটি বর্ণনা বার্তা
HTTP স্থিতি কোড
উদাহরণ ত্রুটি প্রতিক্রিয়া
প্রমাণীকরণ টোকেন ব্যবহার করে প্রমাণীকৃত ব্যবহারকারী সম্পর্কে তথ্য পুনরুদ্ধার করুন।
প্রতিক্রিয়া ক্ষেত্র
প্রমাণীকৃত ব্যবহারকারীর ব্যবহারকারীর নাম
সার্ভার বার্তা (খালি না থাকলে)
প্রমাণীকরণ স্থিতি (1 = প্রমাণীকৃত)
অ্যাকাউন্টের স্থিতি: সক্রিয়, নিষিদ্ধ, অক্ষম, বিচার
অ্যাকাউন্টের মেয়াদ শেষ হওয়ার তারিখ (অসীমিত হলে শূন্য)
বর্তমান সক্রিয় সংযোগের সংখ্যা
ISO 8601 ফর্ম্যাটে অ্যাকাউন্ট তৈরির তারিখ
সর্বাধিক অনুমোদিত একযোগে সংযোগ
অনুমোদিত আউটপুট স্ট্রিম ফর্ম্যাটের তালিকা
ব্যবহারকারীর মালিক/রিসেলার প্রদানকারীর নাম (না থাকলে শূন্য)
প্রদানকারীর লোগো ছবির URL (না থাকলে শূন্য)
প্রদানকারীর লোগো ছবি 208x208 এর ইউআরএল (না থাকলে শূন্য)
ISO 8601 ফরম্যাটে বর্তমান সার্ভারের সময়
উদাহরণ অনুরোধ
টাইপ দ্বারা ফিল্টার করা বিভাগ পুনরুদ্ধার করুন।
বিভাগের ধরন: লাইভ, ভোড বা সিরিজ
স্ট্রিং হিসাবে বিভাগ আইডি
বিভাগ প্রদর্শনের নাম
অভিভাবক বিভাগের আইডি (0 রুট হলে)
ক্যাশে অবৈধকরণের জন্য সামগ্রীর MD5 হ্যাশ৷
উদাহরণ অনুরোধ
মেটাডেটা এবং স্ট্রিম লিঙ্ক সহ একটি নির্দিষ্ট VOD আইটেমের জন্য বিস্তারিত তথ্য পুনরুদ্ধার করুন।
VOD স্ট্রিম আইডি (UUID)
কভার ইমেজ URL
TMDB শনাক্তকারী
ব্যাকড্রপ ছবির URL
জেনার স্ট্রিং
প্লট / বর্ণনা
কাস্ট সদস্য
রেটিং মান (0-10)
পরিচালকের নাম
মুক্তির তারিখ
সেকেন্ডে সময়কাল
ফর্ম্যাট করা স্ট্রিং হিসাবে সময়কাল
বিভাগ আইডির অ্যারে
প্রাপ্তবয়স্কদের সামগ্রী থাকলে 1, অন্যথায় 0৷
VOD স্ট্রিম আইডি
VOD শিরোনাম
যোগ করার তারিখ (ISO 8601)
স্ট্রীম লিঙ্ক URLs
ভিডিও/অডিও কোডেক মেটাডেটা
পুরো সিজন এবং পর্বের তালিকা সহ সিরিজের তথ্য পুনরুদ্ধার করুন, সিজন নম্বর অনুসারে গোষ্ঠীবদ্ধ।
সিরিজ আইডি (UUID)
ঋতু সংখ্যা
ঋতু প্রদর্শনের নাম
সিজনে পর্বের সংখ্যা
ঋতু এয়ার তারিখ
ঋতু ওভারভিউ / বিবরণ
ঋতু কভার ছবির URL
মানচিত্র ঋতু সংখ্যা স্ট্রিং দ্বারা চাবিকাঠি.
পর্ব অবজেক্ট ক্ষেত্র
পর্ব আইডি
TMDB পর্ব আইডি
সিজনের মধ্যে পর্ব সংখ্যা
যোগ করার তারিখ (ISO 8601)
ঋতু সংখ্যা
পর্বের তথ্য বস্তু (ভিওডি তথ্যের মতো একই কাঠামো)
স্ট্রীম লিঙ্ক URLs
ভিডিও/অডিও কোডেক মেটাডেটা
টোকেনের মেয়াদ ব্যবহারকারীর ভূমিকার উপর নির্ভর করে: অ্যাডমিন = 365 দিন, অন্যান্য = 30 দিন
সাফল্যের প্রতিক্রিয়া (200)
/auth এন্ডপয়েন্ট থেকে প্রাপ্ত প্রমাণীকরণ টোকেন