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