Skip to content

Latest commit

 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

file_share - HTTP 文件分享服务器

软件界面

file_share 是一个基于 Python Flask 的轻量级 HTTP 文件分享工具,支持通过浏览器快速访问、上传和下载共享的文件。它不仅可以作为前台窗口服务运行,还可以安装为 Windows 系统服务,实现开机自启动;支持 HTTPS 加密访问与 Caddy 自动证书。无论是局域网内的文件共享,还是临时搭建一个文件下载服务器,file_share 都能轻松应对。

为什么重复造轮子?

现在能用的相似工具太高端了,什么go什么rust啊等等写的,好看也好用 就是一拿到win7上就跑不起来了,试烦了索性就自己造了

  • 所以我的这个工具就一个优点,win7下开发的,所以win7兼容的好
  • 然后就是开了ipv6的监听,没公网IPV4也不愁了,自己家办公室各种地方的机器一运行,文件想怎么下都行
  • 配合我另外一个小工具 ddns_manager
  • 只要有个域名就可以实现 只要有ipv6的都可以实现一个文件在线WEB共享服务
  • 效果展示:
  • ipv6:http://v6.sztcrs.com:12345 (你的网络必须支持ipv6才能访问)
  • ipv4:http://cdn.sztcrs.com:12345

功能特性

  • 简单易用:只需选择要共享的文件夹,设置访问密码(可选),启动服务后即可通过浏览器访问。

  • 多线程支持:基于 Waitress 的多线程服务器,适合生产环境使用。

  • IPv4 和 IPv6 双栈支持:无论是传统的 IPv4 网络还是新一代的 IPv6 网络,file_share 都能完美支持。

  • 密码保护:可以为每个共享目录设置独立的访问密码,确保文件安全。

  • 双因素认证 (TOTP):超级管理员与目录管理员均可开启基于时间的一次性密码两步验证,WEB 页面登录时密码与 6 位动态验证码在同一弹窗内一次提交,支持一键生成密钥、复制绑定链接。

  • 仅验证码登录(免密,可选):在 TOTP 已开启的前提下,可在系统设置 / 目录编辑中勾选"仅验证码登录(免密)",登录时跳过密码校验、仅输入 6 位动态验证码即可(属于单因素认证,安全性弱于"密码+验证码",请谨慎使用)。

  • 显隐密码(可选):程序目录下存在 showpasswd 文件时,GUI 密码输入框旁显示眼睛图标按钮,可临时查看明文(适用于单机、可信环境);删除该文件即恢复默认遮蔽,无需重新初始化。

  • 管理密码:设置一个管理密码,该密码在前端 WEB 页面中任何需要输入密码的地方都可以使用。

  • 上传中心与断点续传:支持并发、分片、断点续传的大文件上传,关闭上传弹窗后仍有常驻进度条展示进度(可点击恢复窗口);任务支持暂停/继续、失败重试、取消,上传中断后可恢复续传,刷新页面也不丢失进度。

  • 上传并发与分片可配置:上传并发数和分片大小可在系统设置中调整(内网高速链路可调大),前端实时显示上传速率。

  • HTTPS / SSL 支持(两种模式)

    • 证书下载模式:从自建证书服务器下载 {域名}_{日期}.zip 证书包,Cheroot/Werkzeug 使用内置证书提供 HTTPS。
    • Caddy 自动 HTTPS(推荐):集成 Caddy 反向代理,自动申请与续期 Let's Encrypt 证书,支持阿里云/腾讯云/Cloudflare 的 DNS-01 验证(无需对外开放 80/443 端口),凭据加密存储、运行时注入环境变量,一键下载内置 DNS 插件的 caddy.exe。
  • 移动端适配:WEB 页面针对手机/平板优化,窄屏下操作按钮常驻显示、长文件名自动折行、按钮自动换行不挤压。

  • 分享链接生成:在 WEB 页面中,你可以把当前文件或目录生成一个分享链接,支持加密分享链接,就像百度网盘一样。

  • 自动清理:支持自动清理用户打包下载产生的临时文件和过期的共享链接,避免磁盘空间浪费。

  • 系统服务支持:可以将 file_share 安装为 Windows 系统服务,实现开机自启动,无需手动操作。

  • 日志记录:详细的日志记录功能,方便排查问题和监控服务状态。

使用场景

  • 局域网文件共享:在办公室或家庭局域网内快速共享文件,无需借助第三方工具。

  • 临时文件服务器:在需要临时搭建文件下载服务器时,file_share 可以快速部署并提供服务。

  • 跨设备文件传输:在不同设备之间传输文件,尤其是当设备之间无法直接连接时,file_share 可以作为一个中转站。

快速开始

1. 下载与运行

a. 直接使用打包好的

你可以从 Release 页面 下载 file_share 的打包版本,解压后直接运行 file_share.exe

b.自己编译

下载压缩包,解压

# 安装依赖 可能不全,因为不是使用pip 生成的requirements ,提示少什么 自己pip install 什么 
pip install -r requirements.txt
# 打包成单文件
pyinstaller main-onefile.spec
# 打包成非单文件,方便改前端模板
pyinstaller main-zip.spec

2. 添加共享目录

  1. 运行 file_share.exe,程序启动后会显示一个简洁的界面。

  2. 点击“添加目录”,选择你要共享的文件夹,设置显示名称和访问密码(可选),也可以直接拖曳文件夹到程序窗口。

  3. 你可以添加多个共享目录。 软件界面

3. 启用/关闭"显隐密码"按钮

在程序目录下新建一个名为 showpasswd 的空文件,即可在主界面及目录编辑对话框中显示密码"眼睛"图标按钮,点击可临时查看已设置的密码;删除该文件则恢复默认的密码遮蔽。

4. 启动服务

  1. 点击“启动服务”按钮,file_share 会显示一个访问链接。

  2. 在浏览器中输入该链接,访问共享的文件。

5. 管理共享文件

在 WEB 页面中,你可以浏览共享的文件,下载文件,甚至生成分享链接。如果设置了管理密码,你还可以通过管理密码进行更多操作。

6. 安装为系统服务

如果你希望 file_share 在后台运行,并且开机自启动,可以点击“安装为系统服务”按钮。安装完成后,file_share 将以 Windows 服务的形式运行,无需手动启动。

技术细节

file_share 基于 Python 开发,使用了以下技术栈:

  • Flask:轻量级的 Web 框架,用于处理 HTTP 请求和响应。

  • Waitress / Cheroot / Werkzeug:可切换的多线程 WSGI 服务器,支持多线程,适合高并发场景。

  • Tkinter + TTKBootstrap:Python 的标准 GUI 库与现代化主题库,使界面更加美观。

  • Caddy(可选):反向代理自动 HTTPS,DNS-01 验证支持阿里云 DNS / 腾讯云 DNSPod / Cloudflare,全库插件版可一键从官方 API 下载。

  • PyInstaller:自动打包为单文件版(file_share.exe)或解压版(file_share.zip,方便修改模板与静态资源),CI 通过 GitHub Actions 在推送 v* 标签时自动构建并发布 Release。 前端WEB界面 图片预览 在线代码类文档预览编辑 前端WEB上传 前端WEB上传中心 前端WEB私有分享 前端WEB私有分享

未来计划

  • 你的想法就是我的计划,欢迎提交需求

贡献与反馈

如果你有任何问题或建议,欢迎通过邮件(letvar@qq.com)与我联系。也欢迎提交 Issue 或 Pull Request,帮助改进 file_share。

许可证

file_share 采用 MIT 许可证,你可以自由使用、修改和分发它。

About

轻量级文件分享工具——file_share HTTP文件分享服务器,替代windows共享文件神器

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages