Description
n8n 阿里云 OSS 节点
n8n 阿里云 OSS 节点
为 n8n 工作流提供阿里云对象存储服务集成
查看详细文档 »
目录
关于项目
这是一个专为 n8n 工作流自动化平台开发的社区节点,提供了完整的阿里云 OSS(对象存储服务)集成功能。
阿里云 OSS 是一种安全、经济高效且高度可靠的云存储服务,支持存储和访问任意数量的数据。通过此节点,你可以在 n8n 工作流中无缝集成文件上传、下载、管理等功能。
核心功能
- 🚀 高性能文件操作:基于官方 ali-oss SDK,提供稳定可靠的文件操作
- 📁 完整的 CRUD 支持:支持文件上传、下载、列表查询和删除操作
- 🔐 安全认证:支持 Access Key 和自定义终端节点配置
- 📊 批量操作:支持前缀过滤的批量对象管理
- 🎯 易于集成:符合 n8n 标准,开箱即用
- 🌐 多区域支持:支持阿里云所有 OSS 区域
技术栈
- n8n 框架:n8n-workflow
- 阿里云 SDK:ali-oss
- 开发语言:TypeScript
- 构建工具:Gulp + TypeScript
- 代码规范:ESLint + Prettier
快速开始
环境要求
- n8n 版本:>= 1.0.0
- Node.js 版本:>= 20.15
- 阿里云账户:需要有效的 Access Key 和 OSS 存储桶
安装步骤
-
通过 n8n 社区节点安装
按照 n8n 社区节点安装指南 进行操作。
-
通过 npm 安装
npm install n8n-nodes-alicloud-oss -
重启 n8n 服务
# 如果使用 npm 安装的 n8n n8n start # 如果使用 Docker docker restart n8n -
验证安装
在 n8n 编辑器中搜索 "Alicloud OSS" 节点,应该能看到新增的节点。
项目结构
├── /nodes/ # n8n 节点实现
│ └── /AlicloudOss/ # 阿里云 OSS 节点
│ ├── AlicloudOss.node.ts # 主节点实现
│ └── alicloud-oss.logo.svg # 节点图标
├── /credentials/ # 凭据定义
│ └── AlicloudOssCredentialsApi.credentials.ts # 凭据配置
├── /dist/ # 编译输出目录
├── .eslintrc.js # ESLint 配置
├── .prettierrc.js # Prettier 配置
├── gulpfile.js # Gulp 构建配置
├── package.json # 项目依赖和脚本
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
使用指南
配置凭据
在使用节点之前,需要配置阿里云 OSS 凭据:
-
获取阿里云凭据:
- 登录 阿里云控制台
- 创建或获取 Access Key ID 和 Access Key Secret
- 创建 OSS 存储桶并记录区域信息
-
在 n8n 中配置凭据:
| 字段名 | 描述 | 必填 | 示例值 |
|---|---|---|---|
| Access Key ID | 阿里云 Access Key ID | ✅ | LTAI4G*************** |
| Access Key Secret | 阿里云 Access Key Secret | ✅ | 3yX9*************** |
| 区域 | OSS 服务区域 | ✅ | oss-cn-hangzhou |
| 存储桶 | OSS 存储桶名称 | ✅ | my-bucket |
| 终端节点 | 自定义 OSS 终端节点(可选) | ❌ | oss-cn-hangzhou.aliyuncs.com |
支持的操作
| 操作 | 描述 | 用途场景 |
|---|---|---|
| 上传 | 将文件上传到 OSS 存储桶 | 文件备份、数据存储 |
| 下载 | 从 OSS 存储桶下载文件 | 文件获取、数据处理 |
| 列出对象 | 列出存储桶中的对象(支持前缀过滤) | 文件管理、批量处理 |
| 删除 | 从 OSS 存储桶删除指定对象 | 文件清理、存储空间管理 |
操作详细说明
📤 上传操作
- 对象键:文件在 OSS 中的完整路径(如:
documents/report.pdf) - 二进制属性:包含文件数据的属性名称(默认:
data)
// 输入示例
{
"data": {
"filename": "report.pdf",
"data": "binary file data"
}
}
📥 下载操作
- 对象键:要下载文件的完整路径
- 二进制属性:下载数据的属性名称(默认:
data)
// 输出示例
{
"data": {
"filename": "report.pdf",
"data": "binary file data",
"mimeType": "application/pdf"
}
}
📋 列出对象操作
- 前缀(可选):过滤对象的前缀(如:
images/列出 images 文件夹下的文件) - 返回数量:最多返回 1000 个对象
// 输出示例
{
"objects": [
{
"name": "documents/report.pdf",
"size": 1024,
"lastModified": "2023-12-01T10:00:00.000Z"
}
]
}
🗑️ 删除操作
- 对象键:要删除文件的完整路径
// 输出示例
{
"deleted": true,
"objectKey": "documents/report.pdf"
}
使用示例
场景一:文档自动备份
HTTP请求节点 → 文件处理 → Alicloud OSS上传 → 通知发送
场景二:批量文件处理
Alicloud OSS列出对象 → 循环处理 → Alicloud OSS下载 → 数据处理 → Alicloud OSS上传
场景三:定时清理任务
定时触发 → Alicloud OSS列出对象 → 条件判断 → Alicloud OSS删除
开发命令
构建和开发
npm run build– 完整构建(TypeScript 编译 + 图标复制)npm run dev– 开发模式,TypeScript 监听模式npm run format– 使用 Prettier 格式化代码npm run lint– 运行 ESLint 检查npm run lintfix– 自动修复 ESLint 问题
代码质量
npm run prepublishOnly– 发布前检查(构建 + lint)npm run publicPublish– 发布到 npm(公开访问)
发布
# 发布新版本
npm version patch|minor|major
npm run publicPublish
部署选项
本地开发环境
-
克隆项目
git clone https://github.com/felix-liuyj/n8n-nodes-alicloud-oss.git cd n8n-nodes-alicloud-oss -
安装依赖
npm install -
开发模式
npm run dev -
链接到本地 n8n
# 创建全局链接 npm link # 在 n8n 项目中链接 cd /path/to/n8n npm link n8n-nodes-alicloud-oss
生产环境部署
-
通过 npm 安装
npm install n8n-nodes-alicloud-oss -
Docker 环境中安装
FROM n8nio/n8n:latest RUN npm install n8n-nodes-alicloud-oss -
通过 n8n 社区节点管理器
- 在 n8n 界面中安装社区节点
- 搜索 "n8n-nodes-alicloud-oss"
- 点击安装并重启 n8n
配置参数
凭据配置
| 参数名 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| accessKeyId | string | ✅ | 阿里云 Access Key ID | LTAI4G*************** |
| accessKeySecret | string | ✅ | 阿里云 Access Key Secret | 3yX9*************** |
| region | string | ✅ | OSS 服务区域 | oss-cn-hangzhou |
| bucket | string | ✅ | OSS 存储桶名称 | my-bucket |
| endpoint | string | ❌ | 自定义 OSS 终端节点 | oss-cn-hangzhou.aliyuncs.com |
节点参数
上传操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|---|---|---|---|---|
| objectKey | string | ✅ | 对象键(文件路径) | – |
| binaryProperty | string | ❌ | 二进制数据属性名 | data |
下载操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|---|---|---|---|---|
| objectKey | string | ✅ | 对象键(文件路径) | – |
| binaryProperty | string | ❌ | 输出二进制数据属性名 | data |
列出对象操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|---|---|---|---|---|
| prefix | string | ❌ | 对象前缀过滤器 | – |
删除操作
| 参数名 | 类型 | 必填 | 描述 | 默认值 |
|---|---|---|---|---|
| objectKey | string | ✅ | 要删除的对象键(文件路径) | – |
兼容性
| 环境要求 | 最低版本 | 推荐版本 | 测试版本 |
|---|---|---|---|
| n8n | 1.0.0 | 最新版本 | 1.x |
| Node.js | 20.15 | 20.x LTS | 20.15+ |
| TypeScript | 5.0 | 5.8+ | 5.8.2 |
开发贡献
欢迎参与项目开发!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
开发环境搭建:
# 克隆项目
git clone https://github.com/felix-liuyj/n8n-nodes-alicloud-oss.git
cd n8n-nodes-alicloud-oss
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建项目
npm run build
# 代码检查
npm run lint
许可证
本项目基于 MIT 许可证开源。详细信息请查看 LICENSE.md 文件。
联系方式
作者:Felix Liu (Cambria Tech)
邮箱:felixliuyj@gmail.com
项目链接:https://github.com/felix-liuyj/n8n-nodes-alicloud-oss
相关资源: