一前言
程序来自Nodeseek的sayyiku大佬。
根据大佬介绍,其一直以来都是用的 chevereto 来作为图床管理,但是这个作者太脑瘫了。项目越改越辣鸡,经常增加一些虚头八脑的社交之类的功能,导致整个项目越来越臃肿卡顿,至于市面上其他的项目,也不想再过多尝试,大部分都是基于多用户场景的,和想要的相违背。本着既然没有,那就自己创造,还能加点自己喜欢的功能,例如 avif 和 webp 格式自动压缩,API 自适应横屏竖屏输出。于是 ImageFlow 就诞生了。
仓库地址 欢迎大家给大佬点 star。
关于图床,之前本站介绍过:
1.用CF和BackBlaze零成本自建图床,年度最强白嫖攻略。
二特点
1主要特性
API 密钥认证:安全的 API 密钥验证机制,保护您的图片上传功能
自适应图像服务:根据设备类型(桌面端 / 移动端)自动提供横向或纵向图片
现代格式支持:自动检测浏览器兼容性并提供 WebP 或 AVIF 格式图片
简单的 API:通过简单的 API 调用获取随机图片
用户友好的上传界面:支持拖拽上传,具有暗黑模式和实时预览功能
图片管理功能:通过直观的管理界面查看、筛选和删除图片
自动图像处理:上传后自动检测图像方向并转换为多种格式
多存储支持:支持本地存储和 S3 兼容存储
2? 技术优势
安全性:API 密钥验证机制确保图片上传和管理功能的安全访问
格式转换:自动将上传的图片转换为 WebP 和 AVIF 格式,减少 30-50% 的文件大小
设备适配:为不同设备提供最合适的图片方向
热重载:上传的图片无需重启服务即可立即可用
并发处理:使用 Go 的并发特性高效处理图像转换
可扩展性:模块化设计便于扩展和定制
响应式设计:完美适配桌面端和移动端设备
暗黑模式支持:自动适应系统主题。
灵活存储:支持本地和 S3 兼容存储,通过 .env 文件轻松配置
3界面预览
三安装教程
快速开始
可以选择两种方式,都非常方便,一种是 Docker,一种是 二进制部署。
1 Docker 部署
1)拉取并进入仓库
git clone https://github.com/Yuri-NagaSaki/ImageFlow && cd ImageFlow
2)修改.env
cp .env.example .env
vim .env
3)根据所选择的部署模式调整 参数
具体 S3 的 下列参数如何获得这里就不再过多赘述了
# API Keys
API_KEY=your_api_key_here # 这是你的API key 用于身份验证登录
# Storage Configuration
STORAGE_TYPE=local # Options: local, s3 根据部署模式选择
LOCAL_STORAGE_PATH=static/images # Local
# S3 Configuration (required when STORAGE_TYPE=s3)
S3_ENDPOINT=
S3_REGION=
S3_ACCESS_KEY=
S3_SECRET_KEY=
S3_BUCKET=
# Custom Domain (optional)
CUSTOM_DOMAIN= # 这里是S3 一般都会有的自定义域名。
4)拉取镜像准备部署
docker compose up -d
一般默认监听8686端口,如有必要,自行修改。
2 本地部署
1)安装依赖
1)安装 Go (1.22+)
2)安装 WebP 工具: sudo apt-get install webp (Ubuntu/Debian)
3)安装 AVIF 工具: sudo apt-get install libavif-bin (Ubuntu)
注意:这里的需要 avif 1.0 版本以上,Debian 系统默认安装的是 0.9 版本。需要自行编译安装。
Ubuntu 24.04 默认即可安装最新版本
2)下载二进制文件修改 env
默认提供 X86 和 ARM 的,自行选择
git clone https://github.com/Yuri-NagaSaki/ImageFlow && cd ImageFlow
https://github.com/Yuri-NagaSaki/ImageFlow/releases/download/v1.0/imageflow-x86
chmod 777 imageflow-x86
cp .env.example .env
vim .env
./imageflow-x86
3)创建 service
[Unit]
Description=ImageFlow Service
After=network.target
[Service]
ExecStart=/path/to/imageflow
WorkingDirectory=/path/to/imageflow/directory
Restart=always
User=youruser
[Install]
WantedBy=multi-user.target
三 如何使用
1打开 IP:8686 端口 输入你在 env 设置的 API_Key
2开始上传图片
注意:由于压缩在本地进行,请选择 CPU 较强的进行部署
3点击右上进入管理
4这里会获取到你上传和压缩后的所有图片
5当然你也可以对某个图片进行删除,他会连带删除原始图片 avif 和 webp 。
6访问 API
API 的地址是 IP:8686/api/ramdom
到此全部完成!
评论 (0)