SimpleHttpServer - 轻量文件上传服务 基于 Gin 框架开发的高性能文件上传服务专注于大文件传输、断点续传和私有化文件管理场景无需复杂配置即可快速部署适配各类 Linux 环境。 核心亮点大文件分片上传自动将大文件拆分多块传输降低网络波动影响。断点续传机制上传中断网络断开、客户端退出后重新上传可自动跳过已完成分片无需从头开始。多类型文件预览支持文本/代码高亮、图片、PDF、Markdown、CSV、音视频等多种格式在线预览。私有化文件管理支持文件查看、下载、删除全生命周期管理。二维码便捷分享10KB 以内小文件可生成二维码分块扫码即可获取解决部分私有化环境下文件提取限制痛点。零依赖快速部署Go 语言编译生成单文件无额外依赖支持 systemd 后台运行与开机自启。安全访问控制管理员账号密码登录管理支持 HTTPS 加密传输自有证书或自动生成自签名证书文件下载链接加入白名单无需登录即可直接下载。响应式 UI 设计移动端浏览器适配有限推荐使用pc端chrome浏览器上传进度实时可视化展示。️ 技术栈类型技术选型后端框架Gin高性能 Go 语言 Web 框架前端技术HTML5 CSS3 JavaScript图标库Font Awesome直观功能图标HTTP 客户端axios异步请求与进度监控部署支持systemd服务进程管理 快速开始推荐单文件二进制部署已嵌入静态资源无需额外文件支持 Linux amd64/arm64 架构。前提条件支持 systemd 的 Linux 系统不支持 systemd 的系统手动启动亦可。网络端口通畅确保端口默认 18181未被占用。部署步骤获取二进制文件二选一从 gitee releases 或者github releases下载预编译二进制文件以及install.sh脚本# 示例wgethttps://gitee.com/zhao-pengfei2/simple-http-server-new/releases/download/v2/install.shwget-OSimpleHttpServer https://gitee.com/zhao-pengfei2/simple-http-server-new/releases/download/v2/SimpleHttpServer-linux-amd64或本地编译make linux-amd64/make linux-arm64产物在build/目录下一键安装并启动# 将 install.sh 与二进制文件放在同一目录后执行需 root 权限sudobashinstall.sh脚本会自动完成查找二进制 → 复制到/usr/local/bin/→ 创建日志/上传目录 → 配置 systemd → 启动服务。可选修改默认配置编辑脚本顶部的配置变量后重新执行即可脚本支持重复执行幂等部署。安装后验证# 查看服务状态systemctl status SimpleHttpServer# 预期输出active (running) 表示启动成功访问服务打开浏览器输入http://服务器IP:18181使用默认账号密码登录用户名admin密码admin123⚙️ 源码编译开发者选项如需自定义功能可通过源码编译部署需提前安装 Go 1.16 环境。编译步骤克隆源码仓库gitclone https://gitee.com/zhao-pengfei2/simple-http-server-new.gitcdsimple-http-server-new编译生成可执行文件# 使用 Makefile 交叉编译makeall# 全平台编译Linux/macOS × amd64/arm64makelinux-amd64# 仅 Linux amd64makelinux-arm64# 仅 Linux arm64makedarwin-amd64# 仅 macOS amd64makedarwin-arm64# 仅 macOS ARM# 编译产物在 build/ 目录下lsbuild/Makefile 已内置-ldflags -w -s优化二进制体积约 20MB静态资源已嵌入无需额外依赖。手动启动服务# 直接启动使用默认配置./SimpleHttpServer# 或指定参数启动./SimpleHttpServer-P8080-d/data/uploads可选配置 systemd 管理将编译后的二进制文件复制到/usr/local/bin/参考install.sh中的 systemd 配置模板执行sudo bash install.sh即可自动配置。 功能使用指南1. 文件上传登录后点击首页「选择文件」支持单次上传多个文件默认最大 20GB可通过参数调整。上传过程中实时显示进度条支持暂停/继续上传网络中断后重新上传会自动续传。支持上传到子目录2. 文件管理本服务提供完善的文件全生命周期管理能力支持多目录层级浏览、分页查看、精准搜索、在线预览、便捷下载及安全删除操作简洁高效。查看文件首页展示所有目标目录中文件及子目录中文件包括文件名、大小、上传时间支持面包屑导航当文件记录数大于 10 条时自动启用分页展示。预览文件点击小文本文件如 .txt、.md .sh .conf 等后的「预览」按钮可直接在线查看内容。下载文件点击「下载」按钮获取文件或复制下载链接分享给他人无需登录即可下载。删除文件管理员可点击「删除」按钮移除不需要的文件操作不可逆请谨慎操作。文件搜索在文件列表顶部配备搜索框支持对当前目录下按文件名进行「模糊匹配搜索」。3. 二维码分享对于 10KB(可通过启动命令参数修改10KB限制但大文件不建议此方式) 以内的小文件上传完成后会显示「生成二维码」按钮。点击按钮生成文件二维码手机扫码即可下载适用于无网络拷贝权限的私有化场景。扫码后纯文本文件直接拼接即可二进制文件为base64编码值需要拼接后解码使用。4. 配置参数自定义支持通过命令行参数调整服务配置执行./SimpleHttpServer --help查看所有参数参数缩写参数名默认值说明-o–qr-size10240 B10KB可生成二维码的最大文件大小不建议增大识别困难-c–chunk5 MB大文件分片大小根据网络情况调整如网络差可适当缩小-d–diruploads文件上传存储目录相对当前启动目录可设置其他绝对路径-M–max-size20 GB单次上传最大文件大小限制-p–passwordadmin123管理员登录密码-P–port18181服务监听端口需确保端口未被占用-u–usernameadmin管理员登录用户名示例修改登录密码为MyPass123最大上传文件为 50GB./SimpleHttpServer-pMyPass123-M50️ 安全与注意事项建议修改管理员密码避免未授权访问。服务仅支持 HTTP 协议如需 HTTPS 加密传输可搭配 Nginx 反向代理实现。定期清理上传目录避免磁盘空间占用过多尤其是临时分片文件系统会自动清理已合并的分片。请勿上传涉密、违法违规文件确保文件传输与存储符合相关法律法规。防火墙需开放配置的服务端口默认 18181否则外部无法访问。❓ 常见问题Q1安装后启动失败提示「端口被占用」A使用-P参数指定未被占用的端口例如./SimpleHttpServer -P 8081或关闭占用该端口的进程。B使用脚本部署方式直接修改脚本中参数重新执行脚本即可。Q2上传文件取消或中断后重新上传相同文件无响应问题A刷新浏览器页面重试即可Q3忘记管理员密码怎么办A通过命令行启动时指定新密码例如./SimpleHttpServer -p 新密码启动后使用新密码登录。B使用脚本部署方式直接修改脚本中参数重新执行脚本即可。Q4上传的文件存储在哪里A默认存储在启动目录下的uploads文件夹可通过-d参数自定义存储目录。 适用场景私有化部署的文件传输需求如内网服务器间文件共享。开发/测试环境的临时文件上传与分发。嵌入式设备ARM 架构的轻量文件管理服务。无云存储权限场景下的小文件快速分享。仓库地址https://gitee.com/zhao-pengfei2/simple-http-server-new