Quick Share風格命令行文件傳輸工具)
在 Linux 上使用 Python 寫一個極簡的 Quick Share 風格命令行工具重點不是復刻 Google 的完整協(xié)議而是把“附近設備之間傳文件”這件事拆成設備發(fā)現(xiàn)、連接配對和數(shù)據(jù)傳輸三個可驗證的環(huán)節(jié)。Quick Share 在 Android、Chromebook 等設備上解決了跨設備文件分發(fā)問題但在 Linux 桌面環(huán)境里沒有官方命令行客戶端。社區(qū)實現(xiàn)通常會退一步在同一局域網(wǎng)內(nèi)用 UDP 廣播做設備發(fā)現(xiàn)用 TCP 連接完成文件發(fā)送和接收。這一整套邏輯用 Python 標準庫就能編寫不依賴第三方框架非常適合用來理解近場文件共享的底層鏈路。這篇文章會沿著這個思路實現(xiàn)一個最小工具 pyshare包含可運行的代碼、運行驗證、常見坑和擴展方向。讀完之后你可以在兩臺 Linux 機器之間完成一次真實文件傳輸并知道如何繼續(xù)補齊加密、斷點續(xù)傳和并發(fā)能力。1. Quick Share 的工作機制與 Linux 落地的現(xiàn)實約束1.1 Quick Share 解決什么問題Quick Share 的目標是讓兩臺距離很近的設備能夠快速交換文件不需要數(shù)據(jù)線、U 盤也不需要先登錄同一套網(wǎng)盤。它把整個過程封裝成一個“選擇文件 - 發(fā)現(xiàn)附近設備 - 建立連接 - 傳輸完成”的用戶流程。對使用者來說只需要判斷“對方是不是我身邊的人”。具體到操作系統(tǒng)內(nèi)部這一流程需要完成設備發(fā)現(xiàn)、能力協(xié)商、安全連接、文件傳輸和進度確認。在 Android 生態(tài)里這項能力可以和 Chromebook、Windows 等設備互通。Linux 桌面并不是官方支持的第一梯隊很多用戶只能通過局域網(wǎng) SMB、HTTP 臨時服務或者網(wǎng)盤中轉來替代。這些方案要么配置復雜要么需要走公網(wǎng)。此時一個基于 Python 的最小 CLI 工具就有了實際使用場景在同一個辦公室或家庭 Wi-Fi 下臨時給另一臺 Linux 電腦傳個安裝包、配置文件或者日志文件不需要開網(wǎng)盤也不需要在目標機器上做復雜的