轻量级资源代理网关 —— 专为 AI 推理平台的临时文件上传、读取与生命周期管理设计。不重新发明存储,而是做现有存储(Local / S3 / R2 / OSS)的统一安全外壳。
它是临时存储界的 Redis。
Upload Broker 支持 AI Agent、AI Coding Assistant、Skills 等自动安装、部署和调用。
go install github.com/doc-war/uploadbroker/cmd/uploadbroker@latestuploadbroker.yaml,根据可用域名配置 base_urluploadbroker --config ./your-path/uploadbroker.yamlGET /healthPOST /v1/uploadurl 为公网可访问地址,直接作为 AI 模型输入3 个端点 · 6 项安全校验 · 0 外部运行时依赖
uploadbroker 不做底层存储——它在存储的前面充当统一的安全代理层。
专为AI推理时代的临时资源url消费设计:给 Local / S3 / OSS / R2 这些现成仓库,套一层开箱即用的安全外壳——签发、校验、到期回收,一条龙。
后台秒/分级主动清理,无需 cron 脚本接管。天然契合 AI 推理(图生图、语音转文字)高频产生、短命临时文件的场景。
零信任架构。魔数检测、扩展名校验、HMAC 鉴权、Salt 轮换全套兜底。Platform 不需要知道底层存储结构,URL 不暴露真实桶路径。
极简内聚,极易集成进 CI/CD 或作为 Sidecar 部署。存储驱动插件化,后端随意切换,上层零改动。
定位临时存储业务核心,认证交给 Platform,剩下的事跟它没关系
Platform 决定谁可以访问(Who);Broker 决定资源是否合法以及如何获取(What & How)。
uploadbroker 不管用户、不管权限,只认文件和签名。Platform 把 session 换成 JWT、加一层 RBAC,它没感觉;它换存储驱动或升级安全策略,Platform 也不用跟着发版。同一个实例,可以被多个产品线一起共用。
单二进制部署,无外部运行时依赖。
下载二进制(或 go install github.com/doc-war/uploadbroker)
编写配置 uploadbroker.yaml
启动 Broker
上传文件
读取文件
资源 URL 由 Broker 签发,五个字段各管一件事,业务层不需要再查库判断权限。
前缀 · 配置 url_prefix,默认 tmp
几点过期 · Unix 秒级时间戳
存哪个格子 · key 前两位做目录分片
身份证 · BLAKE2b-256 内容哈希
防伪章 · URL 签名,防篡改
什么类型 · 由 MIME 检测结果推导
没有桶管理,没有 ACL,上传、读取、健康检查就是全部。
这些是日常开发里最容易漏掉、出事才想起来补的点,框架层面直接兜底。
读文件头前 512 字节,确认真实格式,而非只看后缀
文件名后缀必须和魔数检测结果一致,防伪装上传
配置 hmac_secret 后,上传必须携带合法签名
BLAKE2b-256 签名,链接被改一个字符就失效
TTL 到期自动清理,不用自己写定时任务
Local 驱动限制 .. 访问,挡掉路径穿越
写入认 upload_driver,读取按记录里的 Backend 自动路由——换厂商不用改业务代码。
uploadbroker 不做底层存储,而是在上层提供统一的安全代理层。以下对比帮你理解它跟主流方案的本质区别。
MinIO 定位是完整的对象存储系统,而 uploadbroker 定位是资源代理网关,它们解决的是不同层次的问题。
MinIO 的 Presigned URL 暴露了桶路径和权限模型,而 Broker 的 URL 零信任——Platform 只需拿到标准 URL,不需要知道底层是 MinIO、OSS 还是本地磁盘。
SeaweedFS 的 FUSE 挂载功能对 AI 训练场景有价值,但对于 API 驱动的临时文件读写(推理服务的输出图片、语音、PDF),Broker 更轻量、更聚焦。
Ceph 在超大规模集群中表现出色,但 AI 推理场景的临时文件管理需求是:上传 → 消费 → 过期清理,这个循环只需要小时级存在。用 Ceph 管这种临时数据是"杀鸡用牛刀"。
Garage 和 uploadbroker 完美互补——你可以用 Garage 当底层,Broker 当接入层。今天用 Garage,明天切 MinIO,后天切阿里云 OSS,Platform 端零感知。
性能并非 AI 临时文件管理的瓶颈——通常单机就能承载推理节点的输出流量。真正的痛点是:安全防护、过期管理和存储切换的灵活性,这正是 uploadbroker 的核心能力。