概覽
GitHub 網盤是一款採用 Fluent Design 的跨平台桌面網盤客戶端。檔案內容存放在 GitHub Release 中,目錄結構則由所選分支上的輕量 netdisk.json 保存。
免責聲明
本軟體並非 GitHub 官方軟體,與 GitHub 沒有任何從屬或隸屬關係。
所有儲存服務均由 GitHub 提供。使用者須自行確保所發佈的內容不違反使用者所在地的法律、GitHub 的服務條款、可接受使用政策及其他 GitHub 網站政策。本軟體的所有貢獻者均不對使用者使用本軟體所導致的後果承擔任何責任。
GitHub Release 儲存空間、流量和 API 呼叫次數均受 GitHub 服務條款與配額限制。本軟體不會繞過這些限制,也不應用於侵權或濫用服務。
儲存方式
相容儲存庫會在所選分支根目錄保存 netdisk.json。索引中記錄格式版本與巢狀檔案樹;每個檔案項目指向對應的 Release 標籤和有序資產,並保存原始大小與 SHA-256 雜湊值。
這種設計將檔案內容與 Git 歷史分開:
- Git 保存體積小、易於閱讀的目錄索引。
- GitHub Release 保存實際檔案內容。
儲存庫與檔案管理
桌面客戶端提供常用的檔案管理操作:
- 無需登入即可瀏覽相容的公開儲存庫。
- 登入後存取獲授權的私人儲存庫。
- 在客戶端內建立、加入和管理網盤儲存庫。
- 上傳、下載、重新命名和刪除檔案。
- 建立資料夾並遞迴下載其中內容。
- 切換儲存庫分支,快速重新開啟最近使用的儲存庫。
- 使用其他名稱將檔案儲存至本機。
- 為檔案產生可分享的網頁下載連結。
- 為小於 1.9 GiB 的未分片檔案產生原始 Release 連結。
可靠傳輸
超過 1.9 GiB 的檔案會自動分割為有序的 Release 資產。下載後,客戶端會合併分片,並使用 SHA-256 驗證完整性。
傳輸任務統一顯示在「任務」頁面,可以暫停、繼續或取消。上傳任務繼續時,會重用 Release 中已完成的資產,無需重新上傳。
啟用 GitHub 鏡像後,公開儲存庫的檔案會在每次下載前測速並使用目前最快節點;私人儲存庫一律透過 GitHub API 下載。啟用 aria2 時,客戶端會直接呼叫 aria2c 命令列,並行下載 Release 資產;找不到 aria2c 時會改用基於 requests 的內建下載器。
存取方式與憑據
GitHub 網盤提供三種存取方式:
- GitHub App 授權(推薦):在瀏覽器中輸入一次性驗證碼,安裝 GitHub App,並選擇允許存取的儲存庫。
- 唯讀模式:無需登入即可瀏覽相容的公開儲存庫。
- Personal Access Token(進階):僅在 GitHub App 授權無法使用時,用於相容或疑難排解。
憑據會儲存在作業系統憑據庫中。實際可存取的儲存庫仍取決於 GitHub App 的安裝範圍或 Token 所擁有的權限。
桌面整合
GitHub 網盤使用 PyQt 與 Fluent Design 元件,並支援:
- 淺色與深色主題。
- 支援環境中的雲母材質效果。
- 可調介面縮放與高 DPI 支援。
- 簡體中文、繁體中文和英文介面。
- 系統匣與原生視窗整合。
- 預設下載位置、資料夾優先排序、aria2 與 GitHub 下載鏡像。
- 啟動時檢查更新,並可下載、執行適合目前系統的安裝套件。
安裝後的應用程式會註冊 github-netdisk:// 協定。受支援的連結可以開啟儲存庫,或預先填寫上傳、下載任務;應用程式會先顯示解析後的內容,確認後才開始執行。
開源授權
GitHub 網盤基於 GPL-3.0 開源,主要使用 PyQt5、PyQt-Fluent-Widgets 和 PyGithub,完整名單見鳴謝。