स्टोरेज और मीडिया डिलीवरी
लोकल स्टोरेज, बाहरी स्टोरेज सर्वर (S3, FTP, WebDAV) और सुरक्षित मीडिया प्रॉक्सी।
TubePress हर अपलोड किए गए वीडियो, उसके transcoded renditions और preview assets को डिस्क पर रखता है, और उन्हें एक या अधिक बाहरी storage servers पर transparently offload कर सकता है। यह पृष्ठ बताता है कि फ़ाइलें कहाँ रहती हैं, media storages सिस्टम उन्हें backends में कैसे फैलाता है, और आपकी raw फ़ाइलें उजागर किए बिना media दर्शकों तक कैसे पहुँचती है।
Storage को /admin/settings?tab=storage के अंतर्गत कॉन्फ़िगर किया जाता है। आप पूरी तरह local disk से चला सकते हैं, या FTP, S3-compatible और WebDAV backends जोड़ सकते हैं और TubePress को उन्हें बारी-बारी भरने दे सकते हैं।
TubePress media को कैसे store करता है
अपलोड public/uploads/ के अंतर्गत रहते हैं। प्रत्येक वीडियो को अपना folder मिलता है — वीडियो का video_folder — जिसमें original source के साथ-साथ transcoder द्वारा बनाई गई प्रत्येक rendition और player की ज़रूरत के छोटे assets होते हैं:
public/uploads/
videos/
a1b2c3d4.../ one folder per video (video_folder)
video.mp4 original upload (source)
video_1080p.mp4 processed source rendition
video_720p.mp4 transcoded rendition
video_480p.mp4 transcoded rendition
timeline.vtt scrub-preview sprite map
preview.mp4 hover-preview clip
thumbnails/ poster images
watermark/ watermark PNG
intros/ pre-roll / post-roll clips
branding/ logo, favicon, backgroundTranscoder उच्चतम video_<height>p.mp4 फ़ाइल खोजकर source की पहचान करता है, raw video.mp4, .webm या .ogg पर fallback करता है। निचले renditions उसी folder में लिखे जाते हैं, इसलिए एक ही directory वीडियो की सभी जरूरतें पूरी करती है। इन renditions के उत्पन्न होने के तरीके के लिए Transcoding देखें।
videos/ directory केवल उन्हीं items को रखती है जो अभी भी uploading या transcoding में हैं।बाहरी storage servers
media storages सिस्टम आपको किसी भी संख्या में backends register करने देता है। नए वीडियो हमेशा default storage में जाते हैं; जब कोई storage अपनी disk threshold पार कर लेती है, TubePress स्वचालित रूप से नए अपलोड अगले उपलब्ध पर switch करता है। मौजूदा वीडियो वहीं से serve होते रहते हैं जहाँ वे लिखे गए थे, क्योंकि प्रत्येक वीडियो अपनी storage_id रिकॉर्ड करता है।
चार backend types समर्थित हैं — और कुछ नहीं:
| प्रकार | किसके लिए उपयोग करें | Connection fields |
|---|---|---|
| Local | एकल server, या शुरुआत के लिए | कोई नहीं — public/uploads से serve किया गया |
| FTP | सस्ता storage VPS या seedbox | Host, port (21), user, password, remote path, SSL/TLS, passive |
| S3 | AWS S3, DigitalOcean Spaces, Backblaze, MinIO | Access key, secret, bucket, region, endpoint, prefix |
| WebDAV | Nextcloud और अन्य WebDAV hosts | WebDAV URL, user, password |
प्रत्येक remote storage में कुछ operational settings भी होती हैं:
Storage backend जोड़ना
- Storage editor खोलें।
/admin/settings?tab=storageपर जाएं और Add Storage पर क्लिक करें। - एक प्रकार चुनें और उसे नाम दें। Local, FTP, S3 या WebDAV चुनें। form केवल उन fields को दिखाने के लिए बदल जाता है जिनकी उस प्रकार को ज़रूरत है।
- media URL और credentials दर्ज करें। public Media URL सेट करें, फिर backend के लिए host/keys/path। संग्रहीत password रखने के लिए editing करते समय password blank छोड़ें।
- Operational options सेट करें। status, max disk usage threshold, और URLs पर हस्ताक्षर करना है या नहीं, चुनें।
- Test करें और save करें। Save करने पर पहले connection test चलता है (और यदि आपने monitor-script दिया है तो उसकी जांच भी)। किसी भी failed check को ठीक करें, फिर save करें। वैकल्पिक रूप से इसे default के रूप में चिह्नित करें ताकि नए अपलोड वहाँ जाएं।
https://cdn.example.com)। यह FTP/S3 endpoint नहीं है — दोनों को मिलाना switch के बाद broken playback का सबसे सामान्य कारण है।Storage monitor
Remote backends के लिए, TubePress एक छोटे PHP script का उपयोग करके disk space और health को track कर सकता है जिसे आप storage box पर install करते हैं। storage editor के Disk Monitoring panel में, Download monitor script पर क्लिक करें (/api/storage-monitor-download से serve किया गया), इसे अपने remote server पर upload करें, फिर इसका public URL Monitor script URL field में वापस paste करें।
एक बार connected होने पर, editor live disk usage और अंतिम check समय दिखाता है, और auto-switch threshold उन readings का उपयोग करके जानती है कि backend कब भरा है। script को keyed किया गया है ताकि केवल आपका CMS इसे query कर सके।
Secure media delivery
जब किसी storage के लिए Secure URLs चालू होती है, TubePress कभी भी direct file path नहीं देता। इसके बजाय यह /media/ के माध्यम से routed एक छोटे, time-limited link पर हस्ताक्षर करता है:
/media/{token}/{expires}/{path}403 लौटाता है। default lifetime छह घंटे है।uploads/videos/… के अंतर्गत फ़ाइल।Token हर request पर server-side पर re-computed और checked होता है। local storage के लिए TubePress HTTP range support के साथ फ़ाइल को स्वयं stream करता है (ताकि seeking काम करे); remote storage के लिए यह token verify करता है और फिर आपके CDN पर फ़ाइल के लिए 302 redirect जारी करता है। Raw video को web-server layer पर भी rate-limit किया जाता है: storage editor एक ready-to-paste Nginx snippet generate करता है जो पहले कुछ megabytes के बाद streaming को cap करता है, जबकि transcode workers को एक key के साथ full speed पर pull करने देता है।
CDN & Cloudflare
TubePress Cloudflare के पीछे आराम से चलने के लिए बनाया गया है। दो बातें मायने रखती हैं:
- Chunked uploads 100 MB सीमा को bypass करते हैं। Transcode results
/api/transcode-upload-chunkके माध्यम से टुकड़ों में CMS को वापस stream किए जाते हैं, इसलिए individual requests Cloudflare की free-tier 100 MB cap से नीचे रहते हैं, चाहे rendition कितनी भी बड़ी हो। - Long-cache, cache-busted assets। Static assets को long, immutable cache headers के साथ serve किया जाता है और हर release पर version query द्वारा bust किया जाता है, ताकि एक proxy कभी भी stale फ़ाइल serve किए बिना aggressively cache कर सके।
Per-storage Nginx snippet वीडियो के लिए उचित expires headers और secure local delivery द्वारा उपयोग की जाने वाली वैकल्पिक /media/ internal location जोड़ता है, इसलिए आप इसे सीधे अपने site config में डाल सकते हैं।
अगले कदम
अभी भी अटके हैं?
अपने डैशबोर्ड से टिकट खोलें और हमारी टीम आपकी मदद करेगी।