Skip to content

Jiosanity/rhex-image-compressor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rhex Image Compressor

Rhex 图片自动压缩插件:在图片进入本地或对象存储之前,自动压缩、缩放或转换格式,同时继续复用 Rhex 原有的 MIME 校验、哈希去重、上传配额、上传记录和 local / S3 / OSS 存储流程。

  • 作者:xiaoten
  • 当前版本:1.0.3
  • 许可证:MIT
  • 适配基线:Rhex 1.1.0

功能

  • 后台启用或停用自动压缩
  • 仅调整编码质量,或限制尺寸并调整质量
  • 保持原格式,或统一转换为 JPEG / WebP / AVIF
  • 设置质量、最大宽度、最大高度和最小处理体积
  • 可选择仅在处理结果更小时采用新图片
  • 可设置 JPEG 透明区域填充颜色
  • 可按正文、评论、封面、私信、图片附件、头像和后台素材选择应用范围
  • GIF、SVG、动画 WebP / AVIF 默认跳过
  • 单张图片处理失败时回退原图,不中断整个上传请求

宿主兼容性

当前插件不能直接运行在未经修改的 Rhex 1.1.0 官方镜像中。

插件依赖 upload provider 的 transformFile() hook。该扩展允许插件在 Rhex 水印之后、去重与存储之前修改图片 Buffer:

上传格式与原始大小校验
-> Rhex 水印
-> 插件压缩、缩放或转码
-> 宿主重新检测 MIME、文件大小和 SHA-256
-> 去重与上传配额
-> local / S3 / OSS 保存

相关上游 PR:

其中 PR #25 是本插件的直接宿主依赖;PR #23 与 PR #24 是开发及生产部署期间发现的上传和镜像配套修复。

在 PR #25 进入正式版本和官方镜像之前,可以使用 Jiosanity/Rhex 中包含该扩展的构建,或将 docs/rhex-upload-transform.patch 应用到对应的 Rhex 基线源码后自行构建。

安装

  1. 部署包含 transformFile() 扩展的 Rhex 宿主。
  2. 按照 Rhex 插件文档启用可信插件代码执行环境。
  3. Releases 下载 image-compressor-1.0.3.zip
  4. 进入 Rhex 后台“插件管理”,上传 ZIP 并启用。
  5. 打开插件详情页,设置压缩方式、质量、尺寸和应用范围。

建议首次使用以下配置:

  • 输出格式:保持原格式
  • 质量:82
  • 最大尺寸:2560×2560
  • 最小处理体积:200 KB
  • 仅在结果更小时采用处理后的图片

如果统一输出为 WebP 或 AVIF,需要同时在 Rhex 后台允许上传类型中加入对应扩展名。

从源码打包

仓库中的 addon.jsondist/assets/README.md 是插件安装包所需内容。在仓库根目录执行:

zip -X -r image-compressor-1.0.3.zip addon.json dist assets README.md

安装包中的 addon.json 必须位于 ZIP 根目录,不能额外套一层文件夹。

验证源码

插件不需要单独安装 npm 依赖。可以使用 Node.js 检查所有 JavaScript 模块语法:

find dist assets -type f \( -name '*.mjs' -o -name '*.js' \) -print0 \
  | xargs -0 -n1 node --check

更完整的验证结果见 docs/verification.md

目录结构

addon.json                 插件清单
dist/server.mjs            服务端入口与 provider 注册
dist/config.mjs            后台设置读取与归一化
dist/image-compressor.mjs  Sharp 图片处理逻辑
dist/admin.mjs             后台页面与 API 注册
assets/                    后台设置页面资源
docs/                      宿主临时补丁与验证记录

注意事项

  • 图片处理在 Web/API 进程内同步执行,大图或高并发环境应关注 CPU 和接口耗时。
  • 插件服务端代码按照 Rhex 的可信代码模型运行,请只安装可信来源的插件包。
  • 升级 Rhex 前请检查官方版本是否已经原生提供 transformFile(),避免重复应用补丁。
  • 使用修改版宿主或第三方镜像前,请先备份数据库、上传目录和插件目录。

License

MIT License © 2026 xiaoten

About

Rhex 图片自动压缩插件,支持可配置的尺寸、质量与输出格式。

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors