Skip to content

Releases: shepf/httpcat

v0.7.0

19 Apr 13:32

Choose a tag to compare

v0.7.0

📦🔐 分片上传 + 断点续传 + 登录防爆破

✨ 新功能

  1. 分片上传 + 断点续传

    • 新增 t_upload_session 表记录每个会话的已上传分片 bitmap
    • 支持浏览器/脚本将大文件切片并行上传,中途断网可恢复
    • 默认分片 5MB,并发 3,单文件上限 100GB
    • 整体 MD5 校验 + 单片 MD5 校验(可选)
    • 秒传:同 MD5 文件已存在时通过硬链接直接返回成功
    • 过期会话(24 小时)自动清理分片临时目录
  2. 登录限流防爆破

    • 同一 IP 5 分钟内登录失败 ≥ 5 次,自动锁定 15 分钟
    • 登录成功立即清空失败计数
    • 纯内存实现,零外部依赖(无 Redis)
    • 锁定期间所有尝试直接返回 429,保护后端资源
  3. 下载支持 HTTP Range

    • DownloadFile 切换到 http.ServeContent,支持断点续传、拖动进度条
    • 大文件下载可用 wget/curl -c 续传

📡 新增 API

接口 方法 说明
/api/v1/file/upload/init POST 初始化分片上传会话,返回 uploadId
/api/v1/file/upload/status GET 查询会话状态 & 已上传分片索引(断点续传)
/api/v1/file/upload/chunk POST 上传单个分片(幂等,可重复上传)
/api/v1/file/upload/complete POST 合并分片为最终文件,校验 MD5
/api/v1/file/upload/abort POST 中止会话并清理分片

🎨 前端改进

  • 新增 chunkedUpload() 工具函数,自动切片、并发上传、失败重试、取消支持
  • 文件管理页上传:大于 10MB 的文件自动走分片上传,小文件保持普通上传
  • 分片进度实时回显到上传进度条

🛡️ 安全加固

  • 登录接口加限流中间件,防止暴力破解
  • 分片上传所有路径复用 ResolvePathWithinBase,杜绝路径穿越
  • 分片大小严格校验:除最后一片外必须等于 ChunkSize

v0.6.0

18 Apr 11:25

Choose a tag to compare

v0.6.0

📋🔍 操作日志审计 + 文件在线预览 + 打包下载

✨ 新功能

  1. 操作日志审计系统

    • 新增操作日志记录中间件(OperationLogger),自动记录所有用户操作(上传/下载/删除/重命名/创建文件夹/分享/预览/登录/配置修改等)
    • 操作日志管理页面,支持分页、多条件筛选(操作类型、用户名、IP、路径、日期范围)
    • 操作统计接口,支持按操作类型聚合统计
  2. 文件在线预览

    • 支持文本/代码文件(.txt, .md, .json, .go, .py, .js 等 50+ 种格式)在线查看
    • 支持 PDF 文档在线预览
    • 支持图片(JPG/PNG/GIF/WebP/SVG)、视频(MP4/WebM)、音频(MP3/WAV/FLAC)在线播放
    • 前端预览组件支持全屏模式
    • 预览信息接口返回文件类型、大小、是否可预览等元数据
  3. 文件打包下载

    • 支持多文件选择后打包为 ZIP 下载
    • 支持跨子目录文件的批量打包
  4. 上传增强

    • 文件上传支持指定子目录(dir 参数),支持拖拽上传到当前浏览目录
    • CORS 头新增 UploadToken 允许字段

📡 新增 API

接口 方法 说明
/api/v1/file/preview GET 文件在线预览(返回文件内容 + 适当的 Content-Type)
/api/v1/file/previewInfo GET 获取文件预览元信息(类型、大小、是否可预览)
/api/v1/file/downloadZip POST 多文件打包 ZIP 下载
/api/v1/oplog/list GET 操作日志列表(分页 + 筛选)
/api/v1/oplog/stats GET 操作统计(按类型聚合)

🎨 前端改进

  • 新增文件预览组件(FilePreview),支持文本高亮、图片/视频/音频/PDF 内嵌预览
  • 新增操作日志管理页面,支持丰富的筛选和操作类型图标展示
  • 文件列表页新增预览按钮和批量打包下载功能

v0.5.0

14 Apr 12:40

Choose a tag to compare

v0.5.0

📁✨ 文件管理增强 + Dashboard 统计升级

✨ 新功能

  1. 文件管理增强

    • 子目录导航:面包屑导航支持多级目录浏览,点击文件夹可进入子目录
    • 新建文件夹:支持在当前目录下创建新文件夹
    • 文件重命名:支持对文件和文件夹进行重命名
    • 单个删除:每个文件/文件夹操作列增加删除按钮(文件夹需为空)
    • 批量删除:支持多选文件后批量删除
    • 文件搜索:文件列表页支持按文件名实时搜索过滤
    • 文件类型标签:根据文件扩展名显示彩色类型标签(PDF/DOC/ZIP/图片/代码等)
    • 列排序:支持按文件名、大小、修改时间排序
  2. Dashboard 统计升级

    • 新增「文件 & 分享总览」卡片:文件总数、文件夹数、文件总大小、分享链接统计
    • 文件总览通过递归遍历统计,展示格式化的文件大小(KB/MB/GB/TB)
    • 分享统计展示有效链接数、总链接数、累计下载次数
  3. 下载历史记录

    • 新增下载历史日志查询接口,支持分页、按文件名/MD5/IP 过滤

📡 新增 API

接口 方法 说明
/api/v1/file/delete POST 批量删除文件/文件夹
/api/v1/file/mkdir POST 创建文件夹
/api/v1/file/rename POST 重命名文件/文件夹
/api/v1/statistics/getFileOverview GET 文件总览统计(文件数、目录数、总大小)
/api/v1/statistics/downloadHistoryLogs GET 下载历史日志(分页+筛选)

🤖 MCP Server 新增 Tool

v0.5.0 为 MCP Server 补充了 5 个新 Tool,AI Agent 可通过 MCP 协议完成文件管理全流程:

MCP Tool 说明
create_folder 创建文件夹,支持指定父目录
rename_file 重命名文件或文件夹,支持指定所在目录
batch_delete_files 批量删除文件/空文件夹(JSON 数组传参)
get_file_overview 文件总览统计(文件数、目录数、总大小)
get_download_history 下载历史日志查询(分页+按文件名/MD5/IP 筛选)

至此 MCP Server 共提供 15 个 Tool + 3 个 Resource,覆盖文件查询、上传、删除、重命名、建目录、统计、校验等完整操作。

🎨 前端改进

  • 文件列表页全面重写,支持目录导航、多选操作、分享入口
  • Dashboard 页面新增文件 & 分享总览卡片
  • 前端 API 层新增完整的类型定义(FileItemDeleteFilesParamsCreateFolderParamsRenameFileParams 等)

v0.4.0

06 Apr 05:09

Choose a tag to compare

v0.4.0

🔒🔗 安全加固 + 文件分享

✨ 新功能

  • 文件分享:支持通过链接分享文件,可设置有效期、下载次数限制和提取码保护
  • 分享页面:独立的分享访问页面,支持提取码验证和文件下载
  • 分享管理:新增分享管理页面,查看所有分享记录和统计信息
  • 匿名访问:分享链接支持匿名下载,无需登录(可配置关闭)
  • 修改密码页面:新增独立的修改密码页面,替代原有弹窗

🔐 安全增强

  • 密码哈希升级到 bcrypt,旧密码登录时自动无感升级
  • 首次登录强制修改默认密码,未改密码前无法使用任何功能
  • MCP 开启时强制配置 auth_token,未配置则拒绝启动
  • 文件操作全面防护目录穿越和符号链接攻击

🔧 改进

  • 头像菜单新增「修改密码」入口
  • 提取码简化为开关模式,启用后自动生成
  • 分享下载体验优化:本地计数更新、次数用完自动禁用按钮
  • 下载目录默认值与上传目录统一,开箱即用
  • 清理废弃文件,统一日志格式

v0.3.0

14 Mar 10:43

Choose a tag to compare

v0.3.0

🎉 重大更新:新增 Web 端系统配置管理!

告别手动编辑配置文件,在浏览器中即可完成所有服务配置的查看和修改。

✨ 新功能

  1. 系统配置页面(核心功能)

    • 新增独立的「系统配置」管理页面,支持在 Web 界面直接修改服务配置
    • 存储路径配置:可视化修改上传/下载子目录,自动路径安全校验(防目录穿越)
    • HTTP 服务配置:在线修改后端服务端口,开发模式下自动检测并提示访问端口与服务端口差异
    • 文件上传策略:一键开关文件上传、Token 校验,实时调整上传凭证有效期和文件大小限制
    • 企业微信 Bot 通知:在线配置 Webhook URL,支持开关控制
    • 缩略图配置:动态调整缩略图尺寸(50-2000px)
    • 日志级别:在线切换日志级别(Debug ~ Fatal),无需重启
    • 配置分为「热更新」和「需重启」两类,清晰标记
  2. 配置持久化与服务重启

    • 所有配置变更自动持久化到 YAML 配置文件
    • 需重启的配置(端口、存储路径)支持一键重启流程:保存配置 → 密码验证 → 优雅关闭 → 自动重连检测
    • 重启过程全程可视化(保存中 → 重启中 → 重连中 → 完成)
    • 后端支持重启信号通道,由 systemd/Docker 自动拉起新进程
  3. 图片管理增强

    • 图片管理页面新增缩略图网格视图模式,支持列表/网格切换
    • 网格视图中支持图片预览、下载、删除操作
    • 优化图片缩略图加载和展示效果
      httpcat_v0.3.0_linux-arm64.tar.gz

v0.2.3

02 Mar 14:53

Choose a tag to compare

Bug 修复

  • 修复 Prometheus Metrics 因 IP 标签导致的时间序列无限增长内存泄漏
  • 修复数据库连接池泄漏,全局统一使用单例 DB 连接
  • 修复文件下载句柄未关闭导致的文件描述符泄漏
  • 修复调试日志异常导致 Token 刷新 goroutine 意外退出

v0.2.2

14 Feb 05:01

Choose a tag to compare

v0.2.2

✨ 新功能

  1. 文件列表页面

    • 新增文件列表功能菜单,支持查看上传目录中的文件列表
    • 文件列表接口过滤目录,只返回可下载的文件
    • 支持按修改时间倒序排列
  2. 图片上传鉴权

    • 图片上传接口同文件上传一样,需要 UploadToken 校验
    • 上传图片白名单机制保持与文件上传一致
  3. MCP 增强

    • 新增 upload_image Tool,支持通过 MCP 上传图片(生成缩略图,可在图片管理页面查看)
    • list_files Tool 修复:过滤目录、按时间倒序排序、新增 size_bytes 字段
  4. 系统信息增强

    • 系统信息页新增工作目录(项目根目录)展示,路径一目了然

🔧 改进

  • 前端整体优化:清理废弃组件(HeaderSearch、NoticeIcon、swagger 等),精简代码
  • 登录页、Token 管理、系统信息等页面 UI 重构优化
  • static/ 构建产物从 git 跟踪中移除,遵循最佳实践
  • 更新 README 项目结构说明,补充 website/data/ 等运行时目录

📚 脚本 & 文档

  • 新增 scripts/httpcat-api.sh — AK/SK 签名调用示例脚本
  • 新增 scripts/search-and-upload-image.sh — 图片搜索上传脚本

v0.2.1 - Open API(AK/SK 签名认证)

11 Feb 03:39

Choose a tag to compare

✨ 新功能

  1. Open API(AK/SK 签名认证)

    • 新增 AK/SK 签名认证机制,支持脚本/CI/AI 直接调用所有 API
    • 签名算法基于 HMAC-SHA256,与 AWS Signature V4 行业标准一致
    • 支持恒定时间比较防时序攻击、±60 秒时间窗口防重放攻击
  2. 认证合并中间件

    • 新增 TokenOrAKSKAuth 合并中间件,同一接口同时支持 JWT 和 AK/SK 两种认证方式
    • 白名单机制(upload/download/login)保持不变

📚 文档优化

  • README 新增 Open API 完整文档:签名算法、接口列表、调用示例
  • 新增 AK/SK 场景下上传文件的端到端流程说明(Shell + Python 示例)
  • 新增 POST 请求签名示例(带 JSON Body)

📦 安装

# 下载并解压(以 Linux amd64 为例)
tar -zxvf httpcat_v0.2.1_linux-amd64.tar.gz
cd httpcat_v0.2.1_linux-amd64

# 安装
sudo ./install.sh

# 或直接运行
./httpcat --port=8888 -C conf/svr.yml

v0.2.0 - MCP 支持 & Docker 集成

01 Feb 03:31

Choose a tag to compare

🎉 v0.2.0 - MCP 支持 & Docker 集成

让 AI 助手(如 Claude、Cursor、CodeBuddy)直接管理你的 HttpCat 文件服务器!

✨ 新功能

MCP (Model Context Protocol) 支持

  • 支持 SSE 传输协议,可与 Claude Desktop、Cursor 等 AI 工具集成
  • 9 个 MCP Tools:list_files, upload_file, delete_file 等
  • 3 个 MCP Resources:文件列表、磁盘使用、系统信息
  • 两步删除确认机制,防止误删

Docker 支持

  • 新增 Dockerfile 多阶段构建
  • 新增 docker-compose.yml 一键部署
  • 支持数据持久化挂载

安全增强

  • MCP Bearer Token 认证(可选)
  • 路径安全检查,防止目录遍历攻击

📦 快速安装

Linux / macOS

# 下载
wget https://github.com/dockershe/httpcat/releases/download/v0.2.0/httpcat_v0.2.0_linux-amd64.tar.gz

# 解压并安装
tar -zxvf httpcat_v0.2.0_linux-amd64.tar.gz
cd httpcat_v0.2.0_linux-amd64
sudo ./install.sh

# 启动
sudo systemctl start httpcat