Skip to content

Repository files navigation

FileShare

FileShare

局域网文件共享桌面应用,支持多用户权限管理、文件上传下载、在线预览。


功能概览

服务端

  • 启停 HTTP 文件服务(自定义端口,局域网可访问)
  • 用户管理(增删改 + 密码加密存储)
  • 共享目录管理(添加 / 删除 / 按用户设置读写权限)

客户端

  • 连接管理(保存 / 编辑 / 删除连接信息,一键连接)
  • 文件浏览(列表展示、类型图标、排序、面包屑导航)
  • 文件操作(上传 / 下载 / 新建文件夹 / 重命名 / 复制 / 剪切 / 粘贴 / 删除)
  • 右键菜单(文件区域 + 空白区域)
  • 在线预览(图片缩放、视频播放、文本查看,独立窗口打开)
  • 传输列表(上传 / 下载分 Tab、进度 / 速度 / 时间、打开文件所在目录)

设置

  • 开机启动
  • 启动后自动开启服务
  • 关闭行为(直接退出 / 最小化到托盘)
  • 默认下载目录

界面预览

🌐 在线体验http://fileshare.lykj.top

连接管理 文件列表 权限管理
连接管理 文件列表 权限管理
手机端 · 连接 手机端 · 文件
手机连接 手机文件

技术栈

层级 技术
框架 Tauri v2
前端 React 19 + TypeScript + Ant Design 6 + Zustand
构建 Vite 7
后端服务 axum 0.8(HTTP + multipart + streaming)
数据库 SQLite(rusqlite bundled)
认证 JWT(jsonwebtoken)
客户端请求 reqwest(native-tls)
并发控制 自定义 Readers-Writer Lock

项目结构

src/                          # 前端
├── pages/
│   ├── client/               # 客户端浏览(连接管理、文件列表、预览)
│   ├── server/               # 服务端管理(服务控制、用户、共享目录、权限)
│   └── settings/             # 设置页面
├── hooks/                    # 业务逻辑(连接、文件操作、传输)
├── services/                 # Tauri invoke 封装
├── stores/                   # Zustand 状态管理
├── layouts/                  # 侧边栏布局
├── utils/                    # 工具函数(文件类型、格式化、预览窗口)
└── types/                    # TypeScript 类型定义

src-tauri/src/                # 后端
├── server/                   # axum HTTP 服务(路由、文件操作、认证)
├── client/                   # 远程连接客户端
├── commands/                 # Tauri 命令层
├── db/                       # SQLite 数据库(建表、用户、共享、连接、设置)
├── lock/                     # 文件锁管理器
├── tray.rs                   # 系统托盘
├── utils/                    # 工具(路径安全校验)
└── lib.rs                    # 应用入口

开发

环境要求

  • Bun 1.0+(包管理与构建)
  • Rust 1.77+
  • Tauri CLI (bun run tauri)

启动开发

bun install
bun run tauri dev

构建生产包

bun run tauri build

平台说明

三平台同源码,需在对应系统上各自构建打包。

平台 产物 注意点
Windows .msi / .exe 首次开启服务自动放行防火墙(调用 netsh/powershell),若被自动生成的 Block 规则拦截会先删除再放行
Linux .deb / .AppImage 需先装系统库 libwebkit2gtk-4.1-devlibssl-dev(native-tls 依赖 OpenSSL);不自动配置防火墙,如有 ufw/firewalld 需手动放行服务端口
macOS .dmg / .app native-tls 走系统 Secure Transport,无额外依赖;不自动配置防火墙,首次联网可能弹系统授权
  • 防火墙自动配置仅 Windows 生效,Linux/macOS 下为空操作(axum 绑定 0.0.0.0 即可被局域网访问)。
  • TLS 统一用 native-tls:Windows 走 Schannel、macOS 走 Secure Transport、Linux 依赖系统 OpenSSL(rustls 在 Windows 部分网络环境有兼容性问题,故不使用)。

许可

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages