Skip to content

lvzhenbo/115-plus-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

115+ 桌面客户端

GitHub License GitHub Release GitHub Actions

基于 115 网盘开放平台 的第三方开源桌面客户端,使用 Tauri 2 + Vue 3 + TypeScript 构建,支持文件管理、原生高速下载、OSS 分片上传和 HLS 视频播放。

下载

前往 Releases 下载最新稳定版本安装包,也可到 GitHub Actions 下载 CI 流水线产物。

支持 Windows、macOS 和 Linux 平台,目前非Windows平台正在处于测试状态,欢迎有相关环境和设备的用户使用CI构建测试,一起来推进1.1.0版本。

功能

用户

  • 手机扫码登录
  • 用户信息查看

文件管理

  • 文件/文件夹列表(支持列表/网格视图切换、自定义排序)
  • 文件(夹)复制、移动、删除、重命名
  • 文件详情查看
  • 新建文件夹
  • 文件搜索

文件下载

  • 原生多线程高速下载
  • 断点续传
  • 文件夹递归下载
  • 下载暂停/恢复/重试
  • 下载任务持久化(SQLite)

文件上传

  • 文件和文件夹上传
  • OSS 分片上传(支持大文件)
  • 秒传检测(SHA1 预校验)
  • 断点续传
  • 上传暂停/继续

视频播放

  • HLS 在线视频播放
  • 播放进度记忆与恢复
  • 视频字幕

云下载(离线下载)

  • 链接离线下载
  • BT 种子解析下载
  • 云下载任务列表与管理
  • 下载配额查看
  • 任务文件直接打开

回收站

  • 文件还原
  • 删除/清空回收站

系统

  • 应用内自动更新
  • 窗口状态保存(位置、大小)
  • 单实例运行
  • 深色/浅色主题(跟随系统)

技术栈

类别 技术
桌面框架 Tauri 2
前端框架 Vue 3 + TypeScript
构建工具 Vite
UI 组件库 Naive UI
样式 Tailwind CSS
状态管理 Pinia(持久化至 Tauri Store)
HTTP 客户端 Alova
视频播放 HLS.js
数据库 SQLite
后端语言 Rust

项目结构

src/                          # 前端源码
├── api/                      # 115 网盘 API 封装
│   └── types/                # API 类型定义
├── assets/                   # 静态资源
├── components/               # 可复用 UI 组件
│   ├── BatchRenameModal/     # 批量重命名
│   ├── DetailModal/          # 文件详情
│   ├── FileExplorer/         # 文件浏览器
│   ├── FolderModal/          # 文件夹操作
│   ├── NewFolderModal/       # 新建文件夹
│   └── RenameModal/          # 重命名
├── composables/              # 组合式函数(下载/上传管理、更新检查、字幕控制等)
├── layout/                   # 布局组件
│   └── components/           # 布局子组件(离线下载弹窗、搜索弹窗)
├── router/                   # 路由配置
├── store/                    # Pinia 状态管理
├── styles/                   # 样式文件(Tailwind CSS)
├── utils/                    # 工具函数
│   ├── http/                 # HTTP 适配器(Alova、Tauri)
│   └── subtitles/            # 字幕解析与渲染(ASS/文本)
└── views/                    # 页面视图
    ├── About/                # 关于
    ├── CloudDownload/        # 云下载(离线下载)
    ├── Download/             # 下载管理
    ├── Home/                 # 首页(文件列表)
    ├── Login/                # 登录
    ├── RecycleBin/           # 回收站
    ├── Setting/              # 设置
    ├── Upload/               # 上传管理
    ├── UserInfo/             # 用户信息
    └── VideoPlayer/          # 视频播放器
src-tauri/                    # Tauri 后端(Rust)
├── src/
│   ├── lib.rs                # 主程序(Aria2 管理、插件注册)
│   ├── main.rs               # 入口
│   ├── subtitle.rs           # 字幕处理
│   ├── tray.rs               # 系统托盘
│   ├── download/             # 下载引擎(多线程、断点续传、队列管理、持久化)
│   └── upload/               # 上传引擎(SHA1 计算、OSS 分片上传、队列管理)
└── capabilities/             # Tauri 权限配置

开发说明

环境要求

115 网盘开放平台配置

在项目根目录创建 .env 文件,填入你的 AppID 和 AppKey:

VITE_APP_ID=你的AppID
VITE_APP_KEY=你的AppKey

开发

pnpm install
pnpm tauri:dev

构建

# 先生成签名
pnpm tauri signer generate -w ~/.tauri/myapp.key
# 然后将签名私钥放到环境变量中,公钥放到tauri.conf.json中
export TAURI_SIGNING_PRIVATE_KEY="私钥路径或者私钥内容"
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="如果有密码"

pnpm tauri:build

交流

QQ群:978180785

致谢

感谢 LINUX DO 的佬友的支持。

许可证

MIT

About

115+ 是一个基于 115 网盘开放平台的第三方开源桌面客户端

Topics

Resources

License

Stars

Watchers

Forks

Contributors