{ "nodes": [ { "parameters": { "operation": "Upload File to PDF.co", "uploadMethod": "base64", "base64Content": "={{ $('Loop').item.binary.data.data}}", "name": "={{ $('Loop').item.json.fileName}}" }, "type": "n8n-nodes-pdfco.PDFco Api", "typeVersion": 1, "position": [ 624, 16 ], "id": "5a25a808-8e50-48e3-a044-38876405d088", "name": "PDFco Api1", "alwaysOutputData": true, "credentials": { "pdfcoApi": { "id": "FzZjcxm1RTNvCgQO", "name": "PDF.co account" } } }, { "parameters": { "url": "={{ $json.url }}", "advancedOptions": {} }, "type": "n8n-nodes-pdfco.PDFco Api", "typeVersion": 1, "position": [ 816, 16 ], "id": "a53cf652-50b2-4dac-85fb-2d40e1b32141", "name": "PDFco Api2", "credentials": { "pdfcoApi": { "id": "FzZjcxm1RTNvCgQO", "name": "PDF.co account" } } }, { "parameters": { "operation": "append", "documentId": { "__rl": true, "value": "1cU1DgnWH5rOEay9yeAwTawhu0bc7U-lpOyIFbp1L4Iw", "mode": "list", "cachedResultName": "证书识别", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1cU1DgnWH5rOEay9yeAwTawhu0bc7U-lpOyIFbp1L4Iw/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": "gid=0", "mode": "list", "cachedResultName": "工作表1", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1cU1DgnWH5rOEay9yeAwTawhu0bc7U-lpOyIFbp1L4Iw/edit#gid=0" }, "columns": { "mappingMode": "defineBelow", "value": { "报告编号": "={{ $json.body.certificate_information.report_number }}", "证书编号": "={{ $json.body.certificate_information.certificate_number }}", "项目名称": "={{ $json.body.certificate_information.certificate_title }}", "单位名称": "={{ $json.body.certificate_information.company_name }}", "依据标准": "={{ $json.body.certificate_information.standard_passed }}" }, "matchingColumns": [], "schema": [ { "id": "证书编号", "displayName": "证书编号", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "报告编号", "displayName": "报告编号", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "项目名称", "displayName": "项目名称", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "单位名称", "displayName": "单位名称", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "依据标准", "displayName": "依据标准", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "检验单位", "displayName": "检验单位", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "通过时间", "displayName": "通过时间", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ 1040, 16 ], "id": "5013cc0f-f31b-40d8-b8d6-e1875bcefb63", "name": "Append row in sheet", "credentials": { "googleSheetsOAuth2Api": { "id": "N5B6RNl3HG7DQpbC", "name": "Google Sheets account" } } }, { "parameters": { "conditions": { "string": [ { "value1": "={{ $('Loop').item.json.fileName}}", "operation": "endsWith", "value2": ".pdf" } ] } }, "id": "763af92a-a053-4344-a363-6b7fc0ae7dcf", "name": "2. 判断是否为PDF", "type": "n8n-nodes-base.if", "typeVersion": 1, "position": [ 352, 32 ] }, { "parameters": { "jsCode": "// 创建一个空数组,用于存放我们拆分后的新项目。\nconst outputItems = [];\n\n// 获取输入的第一个(也是唯一一个)项目。\nconst inputItem = $input.first();\n\n// 获取这个项目里包含所有二进制文件的那个 \"binary\" 对象。\n// 这个对象内部有 'files0', 'files1' 等属性。\nconst allBinaries = inputItem.binary;\n\n// 安全检查:如果这个项目里没有任何二进制文件,就直接返回空。\nif (!allBinaries) {\n return [];\n}\n\n// **核心逻辑**:\n// 我们遍历 `allBinaries` 对象的所有属性(即 'files0', 'files1', 'files2' ...)。\nfor (const key in allBinaries) {\n\n // 获取当前属性(比如 'files0')对应的那个文件数据。\n const binaryData = allBinaries[key];\n \n // 再次安全检查,以防某个属性值为空。\n if (!binaryData) {\n continue;\n }\n\n // 为这个独立的文件创建新的JSON元数据。\n const newJsonData = {\n fileName: binaryData.fileName,\n mimeType: binaryData.mimeType,\n status: '已拆分,等待处理',\n originalProperty: key // 记录一下它原始的属性名,有时会很有用\n };\n\n // 创建一个符合n8n标准的新项目。\n const newOutputItem = {\n json: newJsonData,\n binary: {\n // 我们将这个独立的文件放入新项目的'binary'对象中。\n // 使用 'data' 作为属性名是一个n8n的标准做法。\n data: binaryData\n }\n };\n\n // 将这个全新的、只包含一个文件的项目,添加到我们的输出数组中。\n outputItems.push(newOutputItem);\n}\n\n// 返回包含所有新项目的数组。\n// n8n 接收到这个数组后,会自动将其内容“展开”成多个独立的输出项目。\nreturn outputItems;" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -128, 16 ], "id": "50b6e62c-a047-484c-a67f-7847fc490a08", "name": "Code" }, { "parameters": { "batchSize": 10, "options": {} }, "type": "n8n-nodes-base.splitInBatches", "typeVersion": 3, "position": [ 64, 16 ], "id": "d1b7387d-8da5-414d-ae99-b2edbc17d1d4", "name": "Loop" }, { "parameters": { "httpMethod": "POST", "path": "4a113d40-fd68-47e3-8b8a-313769be940e", "options": {} }, "type": "n8n-nodes-base.webhook", "typeVersion": 2.1, "position": [ -368, 16 ], "id": "5d233cbf-6807-4c81-9f08-5181aa1f4596", "name": "Webhook", "webhookId": "4a113d40-fd68-47e3-8b8a-313769be940e" } ], "connections": { "PDFco Api1": { "main": [ [ { "node": "PDFco Api2", "type": "main", "index": 0 } ] ] }, "PDFco Api2": { "main": [ [ { "node": "Append row in sheet", "type": "main", "index": 0 } ] ] }, "Append row in sheet": { "main": [ [ { "node": "Loop", "type": "main", "index": 0 } ] ] }, "2. 判断是否为PDF": { "main": [ [ { "node": "PDFco Api1", "type": "main", "index": 0 } ] ] }, "Code": { "main": [ [ { "node": "Loop", "type": "main", "index": 0 } ] ] }, "Loop": { "main": [ [], [ { "node": "2. 判断是否为PDF", "type": "main", "index": 0 } ] ] }, "Webhook": { "main": [ [ { "node": "Code", "type": "main", "index": 0 } ] ] } }, "pinData": { "PDFco Api1": [ { "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/JPR77ORXVD5WLXJD3GNZKT9Q1IOXTSG3/__-24V01Y002201-______________-____-_______-V8.13.1._-___.pdf?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082655Z&X-Amz-SignedHeaders=host&X-Amz-Signature=ebdcf1b4644d9ddfd4814b180f7743729480d0d873aa2f06c19bf54cca8bf570" }, { "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/VPC72VAC1VQFP2WXT27Q1AKKV3XI5MAX/__-24V01Y002261-______________-_____-_________-V6.6.2_-___.pdf?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082708Z&X-Amz-SignedHeaders=host&X-Amz-Signature=dd65a5617bee0f958907ade37618dc0cc1d01fc1638fff918879128ca8dbe391" }, { "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/2EODD4FGPVKLO6GWP57Z2JL9W3YU9CBX/__-24V01Y002263-______________-____-______MySQL-V5.8.0_-___.pdf?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082719Z&X-Amz-SignedHeaders=host&X-Amz-Signature=0e15e772651706af561da3c1df212fb516b79398ac2e021622f5cb463fa7d6ea" } ], "PDFco Api2": [ { "pageCount": 1, "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/X7T3SNEZJCCIXKKWNK60ZCB2W94YN15U--155-100/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082746Z&X-Amz-SignedHeaders=host&X-Amz-Signature=dd0a56f5c3feccfffa3026e5136ad2c3eeb5865d888e15f9476e7d491c21dea3", "body": { "certificate_information": { "certificate_number": "2024VY004140", "report_number": "24V01Y002201-001", "certificate_title": "可信云·对象存储服务能力检验证书", "company_name": "中移 (苏州) 软件技术有限公司", "company_address": "苏州市高新区昆仑山路58号1幢", "product_name": "移动云对象存储", "product_version": "V8.13.1", "standard_passed": "Q/KXY G002-2018 《云计算服务客户信任体系能力要求 第2部分: 对象存储服务》" }, "compliance_description": { "description": "经中国信息通信研究院的检验, 贵单位的 移动云对象存储 V8.13.1 通过了Q/KXY G002-2018 《云计算服务客户信任体系能力要求 第2部分: 对象存储服务》 标准能力的检验, 达到可信云服务评估的要求, 特发此证。" }, "additional_information": { "website": "www.beetly.hot.cnt", "disclaimer": "由于该检验是针对2024年10月15日前该产品/服务情况进行披露, 用户依然应留意在具体使用过程中可能发生的风险。因云计算软件等技术快速发展、产品/服务不断升级迭代、标准规范随行业发展不断更新等原因, 当产品或检验标准发生较大变化时, 建议本产品/服务进行重新检验。中国信息通信研究院将在2025年7月组织新一批检验。" }, "authorized_signatory": { "name": "구원석", "organization": "云计算开源产业联盟 TRUSTED CLOUD 可信云 Openflource IndustRy/OSCAR", "issue_date": "2024年10月5日" }, "issuer_information": { "organization": "中国信息通信研究院", "address": "北京市海淀区花园北路52号", "website": "http://www.caict.ac.cn/" } }, "duration": 82 }, { "pageCount": 1, "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/T214HEXWOZ31RG6JZQ7CLJ6QA4FKIWRT--155-400/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082804Z&X-Amz-SignedHeaders=host&X-Amz-Signature=8ed258242e779ceef102be4533ae85ab94bf0b5a14a84d14b39a4b9b48932b3d", "body": { "certificate_information": { "certificate_number": "2024VY004155", "report_number": "24V01Y002261-001", "certificate_title": "可信云·物理云主机服务能力检验证书", "company_name": "中移 (苏州) 软件技术有限公司", "company_address": "苏州高新区昆仑山路58号1幢", "product_name": "移动云裸金属服务器", "product_version": "V6.6.2", "standard_passed": "Q/KXY G011-2018 《云计算服务客户信任体系能力要求第7部分: 物理云主机》" }, "compliance_description": { "description": "经中国信息通信研究院的检验, 贵单位的 移动云裸金属服务器 V6.6.2 通过了Q/KXY G011-2018 《云计算服务客户信任体系能力要求第7部分: 物理云主机》 标准能力的检验, 达到可信云服务评估的要求, 特发此证。" }, "validity_information": { "validity_details": "认证书有效性信息及详情可见vixuilextry.taog.com及可使云服务号。由于该检验是针对2024年10月15日前该产品/服务情况进行披露, 用户依然应留意在具体使用过程中可能发生的风险。因云计算软件等技术快速发展、产品/服务不断升级迭代、标准规范随行业发展不断更新等原因, 当产品或检验标准发生较大变化时, 建议本产品/服务进行重新检验。中国信息通信研究院将在2025年7月组织新一批检验。", "issue_date": "2024年10月15日", "authorized_signatory": "2원50" }, "issuer_information": { "issuer_name": "中国信息通信研究院", "issuer_address": "北京市海淀区花园北路52号", "issuer_website": "http://www.caict.ac.cn/" } }, "duration": 77 }, { "pageCount": 1, "url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/89UTBCGK7U607BRLG0A72JVQZO6YT9FN--155-600/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250814/us-west-2/s3/aws4_request&X-Amz-Date=20250814T082821Z&X-Amz-SignedHeaders=host&X-Amz-Signature=23cd537c5284985c632fa6b372dbec6c413cd29630fb421411db1af8bbd1797c", "body": { "certificate_information": { "certificate_number": "2024VY004145", "report_number": "24V01Y002263-001", "certificate_title": "可信云·云数据库服务能力检验证书", "company_name": "中移 (苏州) 软件技术有限公司", "company_address": "苏州高新区昆仑山路58号1幢", "product_name": "移动云数据库MySQL", "product_version": "V5.8.0", "standard_passed": "Q/KXY G003-2018 《云计算服务客户信任体系能力要求 第3部分: 云数据库服务》" }, "compliance_description": { "description": "经中国信息通信研究院的检验, 贵单位的 移动云数据库MySQL V5.8.0 通过了Q/KXY G003-2018 《云计算服务客户信任体系能力要求 第3部分: 云数据库服务》 标准能力的检验, 达到可信云服务评估的要求, 特发此证。" }, "validity_information": { "validity_details": "证书有效性信息及详情可见,www.cs.yourtog.com及网络云服务等, 由于该检验是针对2024年10月15日前该产品/服务情况进行披露, 用户依然应留意在具体使用过程中可能发生的风险。因云计算软件等技术快速发展、产品/服务不断升级迭代、标准规范随行业发展不断更新等原因, 建议本产品/服务进行重新检验。中国信息通信研究院将在2025年7月组织新一批检验。", "disclaimer": "当产品或检验标准发生较大变化时, 建议重新检验。" }, "issuing_authority": { "organization_name": "中国信息通信研究院", "authorized_signatory": "授权签字人", "issue_date": "2024年10月18日", "address": "北京市海淀区花园北路52号", "website": "http://www.caict.ac.cn/" } }, "duration": 85 } ] }, "meta": { "instanceId": "d4bc54c4750443ddb7fb9e6b4c7e38c46f3d96e6d4cbfdf57a74efbc3218b7c8" } }