SuperAPI AI 工具集

n8n-binary-and-data

办公与效率

查看项目

更新于 10-24 02:18

技能介绍

该技能用于处理 n8n 工作流中的文件与二进制数据,适用于读取、转换、存储、上传、下载或传输文件与二进制字段的场景,也包括多模态智能体输入和聊天附件。

基本模型:每个 n8n 条目包含两个并列的数据槽。$json 存放结构化数据,$binary 存放文件字节。文件内容(PDF、图片、压缩包等)只位于 $binary,不会出现在 $json 中。$binary 内的键是二进制属性名,多数文件节点通过 binaryPropertyName 参数指向它,默认常为 data。

二进制来源:HTTP Request 在 responseFormat 设为 file 时,响应体进入 $binary;磁盘读写节点、对象存储或网盘下载、带附件的邮件触发器、AI 媒体生成节点均可产生二进制。若 HTTP 下载未设 file 格式,文件可能以乱码文本落入 $json。

Code 节点读写:读取原始字节应使用 getBinaryDataBuffer(0, 'data'),不要手工 base64 解码。写入时需自行构造含 data、mimeType、fileName、fileExtension 的二进制槽。Code 节点若只返回 json 而不重新附加 binary,文件会被静默丢弃。

跨转换保留:Edit Fields、IF 等仅处理 JSON 的节点可能剥离二进制。可用节点的透传选项(如 includeOtherFields),或将数据分流至转换与旁路两支,再用 Merge 的 combineByPosition 模式按位置合并。

智能体工具边界:AI Agent 与其工具之间只传 JSON,二进制无法双向通过。需要文件时,应先把文件暂存到存储,将哈希键或 URL 注入系统提示或作为工具参数传递,由工具自行下载;工具生成文件时先上传存储,再返回含 key、url、mimeType 的 JSON。passthroughBinaryImages 只影响 LLM 视觉输入且仅限图片,不能作为工具接收文件的通道。$fromAI() 也不能携带二进制。

聊天界面:Slack、Discord、Teams、Telegram 等聊天客户端按 URL 渲染图片,不读取 $binary。n8n 不提供内置 CDN,需由用户选择已有存储(对象存储或网盘)上传后嵌入 URL,敏感内容宜使用带有效期的签名 URL。

验证与限制:校验流程无法发现被剥离的二进制,需通过实际执行并查看各节点输出确认。存储限制、二进制模式及节点字段名随 n8n 版本与部署配置而异,具体字段应以 get_node 确认。该技能不负责选择存储服务商,也不授权将敏感数据上传至外部主机。