Compression节点是n8n中最实用的文件处理工具,能够快速压缩和解压文件。本教程为初学者详细讲解了Compression节点的核心功能、实战用法和完整工作流配置。只需3个步骤,你就能掌握文件自动压缩、批量处理和智能解压的全部技能!

什么是Compression节点?
Compression节点是n8n中专门用于文件压缩和解压的核心节点。它支持两种业界标准的压缩格式:
| 格式 | 用途 | 最佳场景 | 压缩率 |
|---|---|---|---|
| Zip | 通用压缩,支持多文件打包 | 多文件归档、跨平台传输 | 60-70% |
| Gzip | 单文件高效压缩 | 日志文件、大数据集 | 70-80% |
核心能力:

在n8n中新建工作流,按以下顺序添加节点:
压缩操作(Compress)配置:
Compression节点的压缩操作包含4个关键参数:
| 参数名称 | 参数说明 | 配置示例 | 备注 |
|---|---|---|---|
| 输入二进制字段 | 指定要压缩的文件所在字段 | data 或 file1, file2, file3 | 多文件用逗号分隔 |
| 输出格式 | 选择压缩格式 | Zip 或 Gzip | Zip用于多文件,Gzip用于单大文件 |
| 文件名 | 输出压缩文件的名称 | backup.zip 或 report_$(now).zip | 必须包含扩展名 |
| 输出字段名 | 存储压缩文件的字段 | compressed_data | 后续节点通过此字段引用压缩文件 |
解压操作(Decompress)配置:
解压操作相对简单,只需2个参数:
extracted_)应用场景: 每天自动将生成的报告压缩并备份到云存储
完整工作流架构:
Manual Trigger(手动触发)
↓
Generate Report(生成报告数据)
↓
Convert to File(转换为文件)
↓
Compression(压缩为ZIP)
↓
Upload to Google Drive(上传备份)
↓
Send Notification(发送完成通知)Compression节点配置方案:
操作:Compress
输入二进制字段:report
输出格式:Zip
文件名:daily_report_{{ now.format('YYYY-MM-DD') }}.zip
输出字段名:compressed_report核心要点:
{{ now.format('YYYY-MM-DD') }}动态生成包含日期的文件名应用场景: 从多个数据源获取文件,打包成单个ZIP后发送
完整工作流架构:
Manual Trigger
↓
Download File 1(HTTP Request) Download File 2(HTTP Request)
↓ ↓
└──────────────Merge─────────────┘
(合并两个文件数据)
↓
Compression(批量压缩)
↓
Send via Email(邮件发送)Compression节点配置方案:
操作:Compress
输入二进制字段:file1, file2 ⚠️ 关键:用逗号分隔多个字段
输出格式:Zip
文件名:documents_batch.zip
输出字段名:compressed_package实现技巧:
应用场景: 接收ZIP邮件附件,自动解压后提取数据并入库
完整工作流架构:
Webhook Trigger(接收邮件)
↓
Get Email Attachment(获取附件)
↓
Compression - Decompress(解压ZIP)
↓
Split Out Files(分割多个文件)
↓
Process Each File(逐个处理)
├─ Parse Data
├─ Validate Format
└─ Insert to DatabaseCompression节点配置方案:
操作:Decompress
输出文件字段:email_attachment
输出前缀:extracted_核心优势:
extracted_,便于识别
Q1: 如何一次压缩多个文件到同一个ZIP?
A: 在"输入二进制字段"参数中用逗号分隔多个字段名:
输入二进制字段:document1, document2, document3Q2: Zip和Gzip应该如何选择?
A:
Q3: 如何动态设置输出文件名?
A: 使用n8n表达式语法在文件名中插入动态值:
report_{{ now.format('YYYY-MM-DD-HHmmss') }}.zip
backup_{{ $node['Set'].json.customer_id }}.zipQ4: 如何处理"输入字段找不到"的错误?
A:
Q5: 能否对ZIP文件设置密码保护?
A: 核心Compression节点不支持。可使用社区节点n8n-nodes-zip实现AES-256密码保护功能
Q6: 解压后如何处理文件名乱码?
A: 在"输出前缀"字段添加自定义前缀,便于识别:
输出前缀:processed_file_根据实际测试,Compression节点的性能表现如下:
| 操作类型 | 文件大小 | 处理时间 | 压缩效果 | 适用场景 |
|---|---|---|---|---|
| Zip压缩 | 100MB | ~2秒 | 60-70% | 通用文件打包 |
| Gzip压缩 | 100MB | ~1.5秒 | 70-80% | 大数据和日志 |
| 文件解压 | 100MB | ~1秒 | - | 数据提取 |
性能优化技巧:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 压缩文件损坏无法打开 | 文件编码错误或传输中断 | 确保使用"Convert to File"节点正确转换格式 |
| 字段名未找到错误 | 输入的字段名与实际不匹配 | 核查前一节点的输出,复制粘贴正确的字段名 |
| 内存溢出或处理超时 | 单次压缩文件过大 | 启用Loop节点分批处理,或改用Gzip格式 |
| 解压后文件名显示乱码 | 字符编码问题 | 添加Output Prefix前缀,统一文件命名规则 |
Compression节点的三大核心价值:
无论是企业级文件备份系统、自动化数据处理流程,还是跨系统文件交互,Compression节点都能成为你的得力助手。现在就开始构建你的第一个压缩工作流吧!🚀
[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.compression/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#