問題
大型媒體檔案保存在遠端雲端,但家中電腦不應成為下載中轉站;同時需要把來源瀏覽、長時間傳輸、正式媒體庫及跨裝置播放清楚分離,避免刪錯來源或讓暫存檔污染片庫。
把遠端雲端檔案、VPS 下載佇列、持久化媒體庫及跨裝置播放串成一條可重建的自架管線;公開案例只展示架構與決策,不暴露私人片庫或伺服器資料。

大型媒體檔案保存在遠端雲端,但家中電腦不應成為下載中轉站;同時需要把來源瀏覽、長時間傳輸、正式媒體庫及跨裝置播放清楚分離,避免刪錯來源或讓暫存檔污染片庫。
在 Linux VPS 上以 Docker 編排 AList、aria2 及 Jellyfin,使用獨立持久化 volumes 分隔應用設定、下載暫存、正式媒體庫及快取;再把由雲端選檔到驗證播放整理成可重建的操作流程。
完成一條不依賴本地電腦儲存的端到端私人媒體流程,並以大型媒體檔案驗證下載、整理、索引及遠端播放。公開版本刻意不提供 Live Demo,因為產品價值在受保護的私人基礎設施,而不是公開片庫。
透過 storage gateway 瀏覽遠端目錄,只挑選需要進入私人片庫的檔案。
由 VPS 上的 transfer worker 處理長時間下載,暫存區與正式媒體庫保持分離。
完成檔案移入正式 library volume,再由媒體服務掃描、建立索引及 metadata。
已登入的私人裝置直接連接媒體服務,家中電腦毋須保持開機或保存副本。
這個項目不是公開串流平台,而是一項私人基礎設施實驗:大型檔案由遠端雲端來源直接進入 VPS,完成後成為有索引的私人媒體庫,再供已登入的個人裝置播放。家中電腦不需要長時間開機,也不需要先下載一份副本。
系統內有三種外觀看似相近、實際責任完全不同的檔案位置:遠端雲端來源、下載暫存區及正式媒體庫。若沒有清楚區分,清理暫存可能變成刪除來源,未完成檔案亦可能過早進入媒體索引。
我把每個 Docker mount 收窄成一個責任:storage gateway 只負責看見來源,transfer worker 只寫入 staging,完成檔案才移入 library;Jellyfin 只讀取正式媒體庫並維護自己的設定與 cache。這個結構比單純「三個 container 都在運行」更重要,因為它令故障排查、搬遷及重建都有明確起點。
這套系統沒有本地 repository,主要資產是實際部署與 runbook。文件記錄每個 volume 的用途、由零重建次序、憑證類型、常見錯誤及日常下載流程;敏感值只應存在服務設定或密碼管理器,不屬於公開案例內容。
公開一個私人片庫、登入入口或伺服器地址不會增加作品可信度,只會擴大攻擊面。因此這份 Portfolio 只公開經去敏感化的架構、技術決策與已驗證流程,不公開 IP、帳號、密碼、token、檔名或媒體內容。
下一階段不是增加更多公開功能,而是進一步收緊管理入口:HTTPS、私人網絡或 tunnel、最少化 ports、secret rotation,以及磁碟與 container health monitoring。