用途:在 AdonisJS 中为附件生成派生文件(缩略图、缩放图、预览)。变体以转换器形式声明在 config/attachment.ts,保存后经队列异步生成,或由 attachments 路由按需生成。
主要能力:图片转换器基于 sharp,支持 resize、format、autoOrient、blurhash;视频、PDF、文档缩略图分别依赖 ffmpeg/ffprobe、poppler、LibreOffice,并可用图片选项后处理。未指定 converter 时按 mime 类型自动检测。
用法:在配置中定义 converters,并用 declare module 同步类型;在模型上用 @attachment({ variants: [...] }) 列出预生成变体。图片需 npm install sharp;系统依赖示例:sudo apt-get install ffmpeg poppler-data poppler-utils 或 brew install ffmpeg poppler。可用 node ace make:converter 创建自定义转换器,返回 Buffer 或文件路径。v5.1+ 支持 variant.basePath 与 ignoreFolder 控制存储路径。
队列与事件:生成在 @poppinss/defer 队列中异步执行,可设 concurrency,支持 onError、taskCompleted、drained 回调及 attachment:variant_started/completed/failed 事件;timeout 默认 30000 毫秒。RegenerateService 可按行或按模型重新生成变体。
限制:视频、PDF、文档转换依赖系统二进制,部署时可能需自定义 bin 路径;具体收费、平台与效果资料未提供。