一、架构设计
二、环境准备
- 安装n8n(Docker方式):
docker run -d --name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
- 部署MinIO:
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
-v /mnt/data:/data \
minio/minio server /data --console-address ":9001"
- MCP处理器(Python示例):
# mcp_processor.py
import boto3
from minio import Minio
def process_file(bucket_name, object_name):
minio_client = Minio(
"minio:9000",
access_key="your-access-key",
secret_key="your-secret-key",
secure=False
)
# 下载文件
data = minio_client.get_object(bucket_name, object_name)
# 处理逻辑(示例:文本转大写)
processed_data = data.read().decode('utf-8').upper()
# 上传结果
result_key = f"processed/{object_name}"
minio_client.put_object(
bucket_name,
result_key,
io.BytesIO(processed_data.encode()),
len(processed_data)
)
return result_key
三、n8n工作流配置
HTTP Trigger节点(接收触发)
- 方法:POST
- 路径:
/minio-process
MinIO节点配置:
{
"credentials": {
"accessKey": "AKIAIOSFODNN7EXAMPLE",
"secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"endpoint": "http://minio:9000"
},
"operation": "upload",
"bucketName": "input-bucket",
"fileName": "={{$json.fileName}}",
"binaryData": "={{$json.fileData}}"
}
- MCP处理节点(SSH节点执行远程命令):
# 连接配置:SSH到MCP服务器
docker exec mcp_processor python /app/mcp_processor.py input-bucket {{$json.fileName}}
- 结果通知节点(企业微信机器人):
{
"webhookUrl": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx",
"message": "文件处理完成!\n下载链接:http://minio:9000/output-bucket/{{$json.processedKey}}"
}
四、完整工作流测试
- 触发请求示例:
curl -X POST http://n8n-server:5678/minio-process \
-H "Content-Type: application/json" \
-d '{
"fileName": "sample.txt",
"fileData": "VGhpcyBpcyBhIHRlc3QgZmlsZQ=="
}'
- 预期结果:
- MinIO的
input-bucket
生成sample.txt - MCP生成大写文本文件到
output-bucket/processed/sample.txt
- 企业微信收到成功通知
- MinIO的
五、高级优化方案
- 错误处理机制:
- 性能优化代码(使用MinIO异步通知):
from minio.notificationconfig import NotificationConfig
from minio.commonconfig import QueueConfig
# 配置MinIO事件通知
config = NotificationConfig(
queue_config_list=[
QueueConfig("arn:minio:sqs::1:webhook", ["s3:ObjectCreated:*"])
]
)
minio_client.set_bucket_notification("input-bucket", config)
六、关键注意事项
安全配置:
- 为n8n和MinIO启用HTTPS
- 使用Vault管理敏感凭证
- 限制MinIO桶权限(最小化原则)
扩展场景:
- 对接AI模型推理(在MCP中集成PyTorch)
- 添加文件审核步骤(人工审批节点)
- 连接数据库记录操作日志
总结:本方案实现了从文件上传→自动处理→结果通知的完整自动化流程,结合n8n的低代码优势与MCP的处理能力,适用于AI数据处理、报告生成等场景。实际部署时需根据数据量调整MinIO分片策略和MCP并发参数。