Private Media Pipeline 私人媒體自動化管線
經去敏感化的四層媒體交付架構
3協作 Docker 服務
4清楚分離的交付階段
0本地電腦中轉儲存
01

問題

大型媒體檔案保存在遠端雲端,但家中電腦不應成為下載中轉站;同時需要把來源瀏覽、長時間傳輸、正式媒體庫及跨裝置播放清楚分離,避免刪錯來源或讓暫存檔污染片庫。

02

做法

在 Linux VPS 上以 Docker 編排 AList、aria2 及 Jellyfin,使用獨立持久化 volumes 分隔應用設定、下載暫存、正式媒體庫及快取;再把由雲端選檔到驗證播放整理成可重建的操作流程。

03

結果

完成一條不依賴本地電腦儲存的端到端私人媒體流程,並以大型媒體檔案驗證下載、整理、索引及遠端播放。公開版本刻意不提供 Live Demo,因為產品價值在受保護的私人基礎設施,而不是公開片庫。

系統設計

從遠端來源到受保護播放的四段流程

01選擇

透過 storage gateway 瀏覽遠端目錄,只挑選需要進入私人片庫的檔案。

02下載

由 VPS 上的 transfer worker 處理長時間下載,暫存區與正式媒體庫保持分離。

03整理

完成檔案移入正式 library volume,再由媒體服務掃描、建立索引及 metadata。

04播放

已登入的私人裝置直接連接媒體服務,家中電腦毋須保持開機或保存副本。

這個項目不是公開串流平台,而是一項私人基礎設施實驗:大型檔案由遠端雲端來源直接進入 VPS,完成後成為有索引的私人媒體庫,再供已登入的個人裝置播放。家中電腦不需要長時間開機,也不需要先下載一份副本。

真正的問題是資料邊界

系統內有三種外觀看似相近、實際責任完全不同的檔案位置:遠端雲端來源、下載暫存區及正式媒體庫。若沒有清楚區分,清理暫存可能變成刪除來源,未完成檔案亦可能過早進入媒體索引。

我把每個 Docker mount 收窄成一個責任:storage gateway 只負責看見來源,transfer worker 只寫入 staging,完成檔案才移入 library;Jellyfin 只讀取正式媒體庫並維護自己的設定與 cache。這個結構比單純「三個 container 都在運行」更重要,因為它令故障排查、搬遷及重建都有明確起點。

操作文件也是產品的一部分

這套系統沒有本地 repository,主要資產是實際部署與 runbook。文件記錄每個 volume 的用途、由零重建次序、憑證類型、常見錯誤及日常下載流程;敏感值只應存在服務設定或密碼管理器,不屬於公開案例內容。

為甚麼沒有 Live Demo

公開一個私人片庫、登入入口或伺服器地址不會增加作品可信度,只會擴大攻擊面。因此這份 Portfolio 只公開經去敏感化的架構、技術決策與已驗證流程,不公開 IP、帳號、密碼、token、檔名或媒體內容。

下一階段不是增加更多公開功能,而是進一步收緊管理入口:HTTPS、私人網絡或 tunnel、最少化 ports、secret rotation,以及磁碟與 container health monitoring。

延續對話

由作品證據,走到合適的下一步。

了解這套工作方式適合甚麼場景、我能帶來甚麼,以及我在負責任交付上保留的界線。