HTTP,局域网文件分享软件,EasyShare - 私有文件共享

张开发
2026/6/11 11:46:10 15 分钟阅读

分享文章

HTTP,局域网文件分享软件,EasyShare - 私有文件共享
一个简洁、安全、易用的局域网文件共享工具支持文件上传、下载、预览、回收站等功能。## 功能特性### 文件管理- 文件夹创建、重命名、删除- 文件上传支持拖拽上传- 文件下载支持断点续传- 批量下载文件夹自动打包为ZIP- 文件搜索支持筛选条件- ️ 在线预览图片、视频、PDF、文本- ️ 回收站支持恢复和永久删除### 上传功能- 单文件上传- 多文件批量上传- **文件夹上传**保持目录结构- **拖拽上传**支持文件和文件夹- 大文件支持默认最大100GB### 用户管理- 多用户支持- 角色权限控制管理员/读写/只读- 登录失败锁定保护- 操作日志记录### 访问控制- 匿名访问开关- 匿名上传开关- 匿名批量下载开关- 文件夹隐藏功能### 系统托盘- 右下角托盘图标右键菜单操作- 开机启动勾选项一键切换- 隐藏/显示托盘图标- 托盘与网页管理后台实时同步### 开机自启动- 使用 Windows 任务计划程序不弹 UAC- 当前用户运行登录时自动启动- 管理后台一键开关- 托盘右键勾选开关### 界面特性- 明暗主题切换- 响应式设计- 拖拽交互- 进度显示## 系统要求- Windows 7/10/11- 无需安装 Python已打包为exe- 局域网内设备可访问## 快速开始### 方式一使用打包版推荐1. 下载 EasyShare.exe2. 双击运行右下角出现托盘图标3. 右键托盘 → 打开 Web 界面 或手动访问 http://localhost:80814. 默认管理员账号admin / admin### 开机自启动1. 右键托盘 → 勾选 **开机启动**首次需管理员权限2. 系统启动后自动运行无需登录不弹 UAC### 方式二源码运行bash# 安装依赖pip install flask zipstream pystray pillow# 运行python main.py# 指定端口和目录python main.py -p 8080 -d D:\共享文件夹# 安装开机启动需管理员权限python main.py --autostart## 使用说明### 文件上传#### 方式1点击上传1. 点击上传文件按钮2. 选择要上传的文件3. 等待上传完成#### 方式2拖拽上传1. 将文件或文件夹拖拽到页面任意位置2. 松开鼠标自动开始上传#### 方式3文件夹上传1. 点击上传文件夹按钮2. 选择要上传的文件夹3. 文件夹结构会被完整保留**注意**- Chrome/Edge 浏览器支持直接拖拽文件夹上传- 其他浏览器请使用选择文件夹按钮### 文件下载- **单文件下载**点击文件右侧的下载按钮- **批量下载**勾选多个文件点击批量下载- **文件夹下载**点击文件夹右侧的下载按钮自动打包为ZIP### 回收站- 删除的文件会进入回收站- 支持从回收站恢复文件- 支持永久删除- 自动清理默认保留30天### 系统托盘右键托盘图标显示菜单- 服务器运行中 — 状态指示- 打开 Web 界面 — 左键默认操作- ✓ 开机启动 — 勾选切换任务计划首次需管理员权限- 隐藏托盘图标 — 隐藏托盘服务器继续运行- 退出服务 — 完全退出程序### 用户管理管理员1. 登录管理员账号2. 进入管理后台3. 可以- 创建/编辑/删除用户- 查看操作日志- 管理回收站- 修改系统配置- 开关开机自启动- 开关系统托盘## 配置说明配置文件位于程序目录下的 config.jsonjson{share_path: C:\\Users\\xxx\\Desktop\\EasyShare,port: 8081,host: 0.0.0.0,theme: light,site_title: EasyShare,page_title: EasyShare,anonymous_access: true,anonymous_readonly: true,anonymous_upload: false,anonymous_batch_download: false,max_upload_size: 107374182400,password_min_length: 6,password_require_uppercase: false,password_require_number: false,password_require_special: false,login_max_attempts: 5,login_lock_minutes: 15,trash_retention_days: 30,show_tray: true,show_folder_size: true,folder_size_cache_ttl: 300}### 配置项说明| 配置项 | 说明 | 默认值 ||--------|------|--------|| share_path | 共享文件夹路径 | 程序所在目录 || port | 服务端口 | 8081 || host | 监听地址 | 0.0.0.0 || theme | 主题light/dark | light || site_title | 网站标题 | EasyShare || page_title | 浏览器标签标题 | EasyShare || anonymous_access | 允许匿名访问 | true || anonymous_readonly | 匿名用户只读 | true || anonymous_upload | 允许匿名上传 | false || anonymous_batch_download | 允许匿名批量下载 | false || max_upload_size | 最大上传文件大小字节 | 100GB || password_min_length | 密码最小长度 | 6 || login_max_attempts | 登录最大失败次数 | 5 || login_lock_minutes | 登录锁定时间分钟 | 15 || trash_retention_days | 回收站保留天数 | 30 || show_tray | 是否显示系统托盘图标 | true || show_folder_size | 是否显示文件夹大小递归计算 | true || folder_size_cache_ttl | 文件夹大小缓存有效期秒0禁用 | 300 |## 安全特性- 路径安全检查防止目录遍历攻击- 密码加密存储PBKDF2- 登录失败锁定保护- Session 安全机制- 操作日志记录## 浏览器兼容性| 浏览器 | 支持情况 ||--------|----------|| Chrome 86 | ✅ 完整支持含文件夹拖拽 || Edge 86 | ✅ 完整支持含文件夹拖拽 || Firefox | ✅ 支持文件夹请使用按钮选择 || Safari | ✅ 支持文件夹请使用按钮选择 || IE11 | ⚠️ 基本功能支持 |## 技术栈- 后端Python Flask- 前端原生 JavaScript HTML5- 数据库SQLite- 托盘pystray Pillow- 开机启动Windows 任务计划程序schtasks- 打包PyInstallerspec 自动从 config.py 读取版本号## 目录结构EasyShare/├── main.py # 主程序入口├── config.py # 配置文件├── database.py # 数据库操作├── tray_manager.py # 系统托盘管理├── service_manager.py # 任务计划程序管理├── routes/ # 路由模块│ ├── __init__.py│ ├── file_ops.py # 文件操作│ └── admin.py # 管理后台├── utils/ # 工具模块│ ├── file_utils.py # 文件工具│ └── security.py # 安全工具├── templates/ # HTML模板│ ├── index.html # 主页│ ├── login.html # 登录页│ └── admin.html # 管理后台├── static/ # 静态资源│ └── EasyShare.ico # 图标├── data/ # 数据目录│ └── easyshare.db # 数据库├── backups/ # 回收站备份└── config.json # 配置文件## 命令行参数bashpython main.py [选项]选项:-p, --port 监听端口默认8081-a, --host 监听地址默认0.0.0.0-d, --dir 共享目录路径--autostart 安装开机自启动任务计划程序不弹UAC--remove-autostart 移除开机自启动--install-service 安装开机启动任务计划别名--remove-service 移除开机启动任务计划别名--server 纯服务器模式无托盘、无通知供任务计划调用--silent 静默模式不显示弹窗--tray-on 启用系统托盘图标--tray-off 禁用系统托盘图标--version 显示版本信息## 常见问题### Q: 如何修改共享目录A: 编辑 config.json 文件修改 share_path 项或启动时指定 -d 参数。### Q: 如何添加新用户A: 使用管理员账号登录进入管理后台-用户管理点击添加用户。### Q: 文件夹拖拽上传没反应A: 请使用 Chrome 或 Edge 浏览器其他浏览器请使用选择文件夹按钮。### Q: 开机启动不起作用A: 确保以管理员身份运行程序后再开启。检查任务计划schtasks /query /tn EasyShare_Server。### Q: 托盘图标看不到A: 检查管理后台 → 系统配置 → 系统托盘是否开启。或者在托盘的隐藏图标区查找。### Q: 如何备份数据A: 备份以下文件即可- data/easyshare.db - 数据库- config.json - 配置文件- backups/ - 回收站备份## 更新日志### v1.5- 新增文件夹大小显示功能支持递归计算- 新增文件夹大小 TTL 缓存机制避免重复计算提升性能- 管理后台新增文件夹大小显示开关及缓存时间配置- 修复视频预览关闭后声音继续播放的问题- 在上传/删除文件后自动清除相关文件夹的缓存### v1.4- 修复普通用户无法恢复自己删除文件的问题- 修复锁定时间解析在 Python ≤ 3.10 的兼容性问题- 修复 SYSTEM 账户运行导致无法访问用户目录的权限隐患改为当前用户运行- 清理冗余代码移除未使用的 import、重复函数实现、变量遮蔽- 代码质量改进lint 零警告### v1.3- 新增系统托盘pystray右键菜单操作- 托盘菜单开机启动勾选项、隐藏托盘、退出服务- 开机启动改用任务计划程序不弹 UAC- 完全消除 UAC 弹窗仅首次配置需管理员权限- 管理后台新增托盘开关托盘与网页端实时同步3秒轮询- 新增 --server、--tray-on、--tray-off 等命令行参数### v1.2- 文件夹上传保持目录结构- 拖拽上传支持文件夹- 管理后台功能完善### v1.0- 初始版本发布- 文件上传下载功能- 用户管理系统- 回收站功能- 拖拽上传支持下载地址https://download.csdn.net/download/a7568712/92962605

更多文章