直接从您的电子邮件创建、删除和组织AWS S3存储桶和文件
这是一个File Management, Multimodal AI领域的自动化工作流,包含 15 个节点。主要使用 If, Code, AwsS3, Switch, EmailSend 等节点。 直接从您的电子邮件创建、删除和组织AWS S3存储桶和文件
- •AWS Access Key 和 Secret
{
"id": "OO8dBG01EPaQGcVA",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "直接从您的电子邮件创建、删除和组织AWS S3存储桶和文件",
"tags": [],
"nodes": [
{
"id": "de49fbb0-5d1b-42ad-b500-beed9e895414",
"name": "启动工作流(GET请求)",
"type": "n8n-nodes-base.emailReadImap",
"position": [
0,
920
],
"parameters": {
"options": {
"customEmailConfig": "[\"UNSEEN\", [\"SUBJECT\", \"s3\"]]"
}
},
"credentials": {
"imap": {
"id": "zTEGYssr7MSVeCs3",
"name": "IMAP-test"
}
},
"typeVersion": 2
},
{
"id": "4ab408d8-416d-4a39-91cd-3e06553c36a1",
"name": "从电子邮件提取数据",
"type": "n8n-nodes-base.code",
"position": [
220,
920
],
"parameters": {
"jsCode": "const emailBody = $json[\"textPlain\"] || \"\";\n\n// Helper function to match patterns\nfunction matchFirst(patterns) {\n for (const pattern of patterns) {\n const match = emailBody.match(pattern);\n if (match) return match[1];\n }\n return null;\n}\n\n// Detect bucket name\nconst bucket = matchFirst([\n /bucket[:\\s*]*([a-z0-9.-]+)/i,\n /on bucket\\s+([a-z0-9.-]+)/i\n]);\n\n// Detect file name\nconst fileName = matchFirst([\n /file[:\\s*]*([^\\s]+)/i,\n /named\\s+([^\\s]+)/i\n]);\n\n// Detect source file (for copy)\nconst sourceFile = matchFirst([\n /source\\s+([^\\s]+)/i\n]);\n\n// Detect destination file (for copy)\nconst destFile = matchFirst([\n /destination\\s+([^\\s]+)/i\n]);\n\n// Decide task type\nlet task_type = null;\nif (/create bucket/i.test(emailBody)) task_type = \"create_bucket\";\nelse if (/delete bucket/i.test(emailBody)) task_type = \"delete_bucket\";\nelse if (/copy file/i.test(emailBody)) task_type = \"copy_file\";\nelse if (/delete file/i.test(emailBody)) task_type = \"delete_file\";\nelse if (/download file/i.test(emailBody)) task_type = \"download_file\";\nelse if (/upload file/i.test(emailBody)) task_type = \"upload_file\";\nelse if (/list files/i.test(emailBody)) task_type = \"get_files\";\n\nreturn [\n {\n json: {\n bucket,\n fileName,\n sourceFile,\n destFile,\n task_type\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "d2926988-4e41-4d5e-84e2-75893ed04565",
"name": "创建存储桶",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
320
],
"parameters": {
"name": "new-project",
"resource": "bucket",
"additionalFields": {}
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "1401cf3e-62c1-44db-bca6-29231f3add1e",
"name": "删除存储桶",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
520
],
"parameters": {
"name": "new-project",
"resource": "bucket",
"operation": "delete"
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "43d9a1bb-6ad5-4916-91ef-0e9df365d8f4",
"name": "复制文件",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
720
],
"parameters": {
"operation": "copy",
"sourcePath": "/old/old-project-image.jpg",
"destinationPath": "/new/new-project-image.jpg",
"additionalFields": {}
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "b7af67ad-ba3d-41fe-96fc-3613f332a1fa",
"name": "上传文件",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
1320
],
"parameters": {
"fileName": "/new/new-project-image.jpg",
"operation": "upload",
"bucketName": "new-project",
"additionalFields": {}
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "e8290bcc-0816-421d-bea3-e588809d63b9",
"name": "获取多个文件",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
1520
],
"parameters": {
"options": {},
"operation": "getAll",
"bucketName": "={{ $json.bucket }}"
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "cd585a21-6073-4a59-a157-943360266ac4",
"name": "下载文件",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
1120
],
"parameters": {
"fileKey": "/new/new-project-image.jpg",
"bucketName": "new-project"
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "33819696-4b09-45c8-b938-0a929281be26",
"name": "删除文件",
"type": "n8n-nodes-base.awsS3",
"position": [
660,
920
],
"parameters": {
"fileKey": "/new/new-project-image.jpg",
"options": {},
"operation": "delete",
"bucketName": "new-project-image"
},
"credentials": {
"aws": {
"id": "KRRqQf7ufs26Mvaq",
"name": "AWS account - test"
}
},
"typeVersion": 2
},
{
"id": "ae71cb97-4e9e-4733-a024-990045bed90f",
"name": "检查任务类型",
"type": "n8n-nodes-base.switch",
"position": [
440,
836
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "99e9f0b2-e19b-45c5-a60e-317d772e6291",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "create_bucket"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4e72b4c7-eed9-4039-84c7-773a4dee2eb6",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "delete_bucket"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "aef1b8b8-9175-4819-9cb8-87209e4b2954",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "copy_file"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a256941b-0882-4ee1-9126-491da78f5fb4",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "delete_file"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a502de56-2efa-4766-b883-65d8cefaab1a",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "download_file"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "62aae8fd-71f2-4194-af78-b8d42179a2d0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "upload_file"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e70fb51d-7d2e-4ed2-bdde-7edd03059033",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.task_type }}",
"rightValue": "get_files"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "a3b10fac-ff46-4aac-9683-949c4c6246c8",
"name": "发送失败邮件",
"type": "n8n-nodes-base.emailSend",
"position": [
1100,
1020
],
"webhookId": "2c315c54-22bb-49c5-8f74-5f32569b8821",
"parameters": {
"text": "=AWS S3 Operation Failed",
"options": {
"replyTo": "={{ $('Start Workflow (GET Request)').item.json.from }}"
},
"subject": "=AWS S3 Operation Failed",
"toEmail": "={{ $('Start Workflow (GET Request)').item.json.from }}",
"fromEmail": "xyz@gmail.com",
"emailFormat": "text"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "7c01eb42-56e7-431e-ba13-9fa8b88cb84f",
"name": "发送成功邮件",
"type": "n8n-nodes-base.emailSend",
"position": [
1100,
820
],
"webhookId": "2c315c54-22bb-49c5-8f74-5f32569b8821",
"parameters": {
"text": "=AWS S3 Operation Successful",
"options": {
"replyTo": "={{ $('Start Workflow (GET Request)').item.json.from }}"
},
"subject": "=AWS S3 Operation Successful",
"toEmail": "={{ $('Start Workflow (GET Request)').item.json.from }}",
"fromEmail": "xyz@gmail.com",
"emailFormat": "text"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "d79e2096-604a-441b-9697-6e308b3002f5",
"name": "检查-成功或失败",
"type": "n8n-nodes-base.if",
"position": [
880,
920
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "045a2b56-33db-45b3-8c14-ad7d0ba64db7",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.Key }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "d6872864-93fc-462a-8693-41377e283d37",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
380
],
"parameters": {
"width": 1000,
"height": 140,
"content": ""
},
"typeVersion": 1
},
{
"id": "c19d98fb-6112-4886-807f-c78f5aead7be",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-680,
760
],
"parameters": {
"color": 4,
"width": 560,
"height": 400,
"content": "## 工作原理"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2bdf2886-f43d-4a91-853c-f40359658edd",
"connections": {
"Copy a file": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Delete a file": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Upload a file": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Get many files": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Check Task Type": {
"main": [
[
{
"node": "Create a bucket",
"type": "main",
"index": 0
}
],
[
{
"node": "Delete a bucket",
"type": "main",
"index": 0
}
],
[
{
"node": "Copy a file",
"type": "main",
"index": 0
}
],
[
{
"node": "Delete a file",
"type": "main",
"index": 0
}
],
[
{
"node": "Download a file",
"type": "main",
"index": 0
}
],
[
{
"node": "Upload a file",
"type": "main",
"index": 0
}
],
[
{
"node": "Get many files",
"type": "main",
"index": 0
}
]
]
},
"Create a bucket": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Delete a bucket": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Download a file": {
"main": [
[
{
"node": "Check - Success or Fail",
"type": "main",
"index": 0
}
]
]
},
"Check - Success or Fail": {
"main": [
[
{
"node": "Send Success Email ",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Failed Email",
"type": "main",
"index": 0
}
]
]
},
"Extract Data from Email": {
"main": [
[
{
"node": "Check Task Type",
"type": "main",
"index": 0
}
]
]
},
"Start Workflow (GET Request)": {
"main": [
[
{
"node": "Extract Data from Email",
"type": "main",
"index": 0
}
]
]
}
}
}如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 文件管理, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Oneclick AI Squad
@oneclick-aiThe AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.
分享此工作流