2026年1月24日• 4 分で読める
透過 Vibe Coding 改良 UpDownServer:重塑 Python HTTP Server 體驗
開發日記PythonAI
在 2022 年時,我曾在部門內部介紹 python3 -m http.server 來快速在開發板(當時部門正在開發 ASUS Tinker Board 系列)與主機間進行檔案傳輸。這在需要臨時搬移檔案時非常方便,省去了安裝額外傳輸套件的麻煩。
最近在協助架設一台 Windows Demo 主機時,再次遇到了檔案傳輸的痛點。由於環境限制,往往需要拿著隨身碟在兩台電腦間來回奔波。
回頭尋找 http.server 時,偶然發現了 uploadserver 這個專案。
uploadserver 實作了許多不錯的功能,例如認證機制,解決了原生 http.server 只能下載不能上傳的問題。然而在實際使用上,仍有一些不便之處:
- 介面分離:原生的下載畫面與上傳畫面是分開的,操作時需要切換。
- 缺乏拖曳支援:不支援 Drag & Drop 檔案上傳,操作效率較低。
為了解決這些問題,我決定透過 Vibe Coding 的方式(即透過 AI 輔助編碼)進行改良。 我 Fork 了該專案並基於實際需求,請 AI 協助實作了以下功能改進:
功能改進重點
- 頁面整合 將上傳與下載介面整合至單一頁面,不再需要切換視圖即可同時進行檔案管理。
- 支援 Drag & Drop 上傳 新增了現代化的檔案拖曳上傳功能,提升使用者體驗。
- 增強路徑與目錄支援 支援上傳檔案至任意路徑,並具備建立資料夾的功能,不再侷限於根目錄。
- 檔案資訊顯示 在列表中顯示所有檔案的實際大小,方便管理磁碟空間。
- Timeout 機制 新增連線逾時強制斷線功能,避免閒置連線佔用資源。
CI/CD 自動化與開源實踐
除了功能改良,我也趁機玩了 GitHub Actions 的 CI/CD 流程,讓專案維護更輕鬆:
- 自動化測試 設定了自動測試流程,每次 Push 或 Pull Request 都會自動執行單元測試,確保改動不會破壞既有功能。
- 自動編譯與發布 建立了 Release Workflow,只要 Push 新的 Tag,GitHub Actions 就會自動進行編譯,並將新版本上傳至 PyPI,大大簡化了發布流程。
專案連結
目前改良後的專案已開源,相關程式碼可參考: https://github.com/harry18456/updownserver
Vide coding 真的是越來越方便了,但雖然方便我仍不太敢用在嚴謹的專案上,畢竟 AI 有時會出錯。
