dsh-attachment-downscale
开发工具 活跃维护

dsh-attachment-downscale

zoumutou/dsh-attachment-downscale

图片附件自动降级插件,实现超限图片自动压缩适配,提供2000px边长、3.

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
11 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:zoumutou/dsh-attachment-downscale
git clone https://github.com/zoumutou/dsh-attachment-downscale.git
git clone git@github.com:zoumutou/dsh-attachment-downscale.git
README.md main

dsh-attachment-downscale

DSH 图片附件准入对超限图片(单边 >2000px / 单图 >3.5MB / 像素超 4000 万)直接拒绝,
上传手机原图时体验很差。本插件在 attachments 服务入口saveImages)把超限图片
用 sharp 自动降级后再入库:

  • 超尺寸 → 等比缩放到限制内(长边 ≤2000px)
  • 缩放后仍超字节数 → 同格式降质(jpeg/webp 质量阶梯),仍不行转 webp
  • 多帧动图(GIF/WebP)跳过不处理,避免破坏动画
  • 处理失败 → 直通原准入逻辑(维持原拒绝行为),绝不吞错误

入库后图片恒满足准入限制,模型请求 / vision-bridge / 历史导出拿到的都是合规文件。

安装

# 本地开发
npm run build        # 或 dev_build_plugin
# 装入 web profile(热生效,免重启):
# dev_install_package /Users/zoumutou/coded/dsh-attachment-downscale web

# 生产(npm 发布后)
dsh plugin --profile web add dsh-attachment-downscale
# 或 GitHub 装配
dsh plugin --profile web add github:zoumutou/dsh-attachment-downscale

市场上架

  • npm 包带 dsh-plugin 关键词,GitHub 仓库打 dsh-plugin 话题后,社区市场
    (dsh-suite 每小时刷新 / chnjames dsh-plugin-market 实时查询)自动收录,无需 PR。
  • Release 附件:npm pack 产出 dsh-attachment-downscale-<version>.tgz

配置

插件行支持 config

- insert:
    - name: dsh-attachment-downscale
      config:
        enabled: true      # 关闭后恢复原拒绝行为
        quality: 82        # 重编码质量(jpeg/webp)
        # 以下缺省跟随 attachments 服务自身的准入限制:
        # maxImageDimension: 2000
        # maxImageBytes: 3670016
        # maxImagePixels: 40000000

测试

node test/normalize.test.mjs