Fottly Vibe 项目
开源自托管图像转换服务,内置 AI 背景移除和完整缓存机制
Fottly 是一个开源的自托管图像处理与转换服务,内置 AI 背景移除功能,可作为 Cloudinary 的开源替代方案。该项目由独立开发者 Noah-1919 构建,已在 GitHub 上开源,采用 MIT 许可证,核心定位是帮助团队在自有基础设施上运行完整的图像处理流水线,无需依赖第三方云服务商的定价和合规约束。
从功能架构来看,Fottly 同时解决了三个常见需求:图像格式转换与缩放(支持 WebP、AVIF、JPEG、PNG、TIFF)、AI 背景移除(基于 Rembg 模型)、以及结果缓存。相同参数的转换请求只会在首次计算,以后直接命中缓存,大幅降低重复调用的计算成本和时间消耗。所有源文件和缓存数据默认存储在 S3 兼容存储(AWS S3、Cloudflare R2、MinIO 等),通过环境变量配置,不绑定特定云服务商。
技术实现方面,Fottly 的图像转换沿用了业界成熟的 URL 参数化风格(与 Cloudinary 一致),调用方只需在图片 URL 路径中拼接操作指令即可触发相应转换。支持的参数包括 w(宽度)、h(高度)、c(裁剪模式)、f(输出格式)、q(质量)、r(旋转角度)、grayscale(灰度)和 bg_remove(背景移除),可组合使用,例如 /t/w_400,h_300,f_webp,q_75/photo.jpg 表示将图片缩放为 400×300、输出为 WebP 格式、质量 75%。
部署方面,项目提供完整的 docker-compose 配置,包含四个容器:MinIO(本地 S3 存储)、createbuckets(自动初始化存储桶)、rembg(AI 背景移除服务)和 app(主服务)。一行命令 docker compose up --build 即可在本地启动完整运行环境。项目还附带了交互式 demo.html 页面,可直接在浏览器中可视化构建转换 URL。
认证采用 Bearer Token 机制,文件上传、删除、重命名等写入操作需要通过 Authorization 头传递 API_KEY,而转换后的图片分发路由 /t/... 则完全公开(与 Cloudinary 相同的模式,因为浏览器无法在 <img> 标签中发送 Authorization 头)。速率限制默认为每 IP 每分钟 100 次请求,可通过环境变量调节。
适用人群方面,Fottly 适合需要自建图像 CDN 但不想使用云服务商收费方案的开发团队、对数据主权有要求不希望图片经过第三方处理的企业、以及希望在学习图像处理服务架构过程中参考真实开源实现的个人开发者。
评论与建议
登录 后参与评论或提建议