Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

baidupcs-web

基于 BaiduPCS-Go SDK 的 Web 界面,把百度网盘 CLI 变成远端下载器 + 文件管理器。

特性

  • 依赖上游 SDK,不改上游一行代码 — 跟随更新只需 go get -u
  • Authelia Header 认证 — 多用户隔离,无需自建用户系统
  • 账号共享 — 一个百度账号可共享给多个用户,凭证只存一份,不暴露 BDUSS
  • 下载到服务器 — 远端下载器模式,多线程 + 断点续传(阶段2)
  • 单二进制部署 — React 前端 go:embed 嵌入

架构

Authelia (反代认证) ──► baidupcs-web (单二进制)
                          │  读 Remote-User header 识别用户
                          │  按 user 隔离百度账号(BDUSS)
                          ▼
                     baidupcs SDK (NewPCS)
                          ▼
                     百度网盘 API

复用边界(来自上游,均非 internal,可外部 import):

  • baidupcs/ — 纯 SDK,NewPCS(appID, bduss) 无全局状态
  • pcsutil/taskframework/ — 任务调度引擎
  • pcsutil/checksum converter — 工具库

上游 internal/pcscommand 等无法 import(含 fmt.Println 输出 + 全局 config 耦合),故在本项目 internal/service 重写薄壳,返回 JSON。

环境要求

  • Go ≥ 1.23
  • Node.js(构建前端)
  • 部署在 Authelia 反代之后(生产)

快速开始

# 1. 安装依赖
go mod tidy

# 2. 开发模式运行(config.yaml 设 auth.dev_allow_all: true,跳过 Authelia)
go run main.go

# 3. 构建前端
cd web && npm install && npm run build && cd ..

# 4. 构建单二进制
go build -o baidupcs-web .
./baidupcs-web

API

所有 /api/* 需经过 Authelia 认证(开发模式除外)。

方法 路径 说明
GET /api/accounts 列出当前用户可见的百度账号(含他人共享的,shared: true)
POST /api/accounts 绑定账号 {bduss, stoken?, uid, name, workdir?}
DELETE /api/accounts/:uid 解绑(仅账号所有者)
POST /api/accounts/:uid/activate 切换当前账号
GET /api/accounts/:uid/shares 列出该账号已共享给哪些用户(仅所有者)
POST /api/accounts/:uid/shares 共享给某用户 {user_key: "bob"}(仅所有者)
DELETE /api/accounts/:uid/shares/:userKey 撤销对某用户的共享(仅所有者)
GET /api/files/list?path=/&order_by=name&order=asc 列目录
GET /api/files/meta?path= 文件元信息
GET /api/files/search?path=/&keyword=&recurse= 搜索
POST /api/files/mkdir {path}
POST /api/files/remove {paths:[]}
POST /api/files/move {from, to}
POST /api/files/copy {from, to}
POST /api/files/rename {from, to}
GET /api/quota 空间配额

账号共享

每个账号绑定一个用户,但绑定者可把账号共享给其他用户(如 A 共享给 B、C):

  • 仅所有者可管理共享 — 在账号切换菜单的「🔑 共享当前账号」中填写对方 Authelia 用户名即可
  • 凭证只存一份 — BDUSS/STOKEN 不复制、不暴露给被共享者;被共享用户看到的是同一份凭证,名称/工作目录以所有者的设置为准
  • 被共享用户登录后即可在账号菜单中看到并切换使用该账号(带「共享」标记),可用于文件浏览、下载、上传、分享、转存、回收站
  • 解绑/共享配置仅限所有者,被共享用户无法解绑或修改
  • 撤销共享后,对方立即不可见

跟随上游更新

go get -u github.com/qjfoidnh/BaiduPCS-Go && go mod tidy && go test ./...

零 patch 冲突。go.mod 锁定已验证版本,定期主动升级。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages