Sparround

Fayllar və binary data

Binary data — fayl tipli hər hansı data: şəkil, PDF, CSV, arxiv. Item-in içində json-dan ayrı, binary açarında saxlanır.

Fayllarla işləmək üçün üç əsas node var:

  • Extract From File — binary formatdan datanı çıxarıb JSON-a çevirir (CSV, PDF, XLSX, mətn)
  • Convert to File — JSON datanı fayla çevirir (CSV, XLSX, mətn, base64)
  • Read/Write Files from Disk — n8n işlədiyi maşının diskindən fayl oxuyur və yazır

Əlavə olaraq: HTML və XML üçün ayrıca node-lar, arxivlər üçün Compression, şəkillər üçün Edit Image, uzaq server üçün FTP node-u var. Lokal fayl dəyişikliyinə reaksiya vermək lazımdırsa Local File Trigger işlədilir.

SsenariNode zənciri
E-poçtdakı CSV qoşmasını cədvələ yazmaqGmail Trigger → Extract From File (CSV) → Google Sheets
Hesabatı Excel faylı kimi göndərməkPostgres → Convert to File (XLSX) → Gmail (qoşma / attachment)
PDF invoice-dan məlumat çıxarmaqTrigger → Extract From File (PDF) → AI (sahələri doldur) → mühasibat sistemi
Sayt səhifəsindən data toplamaqHTTP Request → HTML (Extract) → Edit Fields
Fayl arxivini açıb içindəkiləri emal etməkTrigger → Compression (Decompress) → Extract From File

Binary dataya expression ilə müraciət. $('Node adı').item.binary obyekt qaytarır: bir item-də bir neçə binary sahə ola bilər və hər biri öz adı ilə saxlanır. Node-ların çoxu çıxışını data adı ilə verir, amma bu, node-dan asılıdır — ona görə node çıxışına baxıb adı dəqiqləşdirmək lazımdır.

Məsələn HTTP Request node-unun ürətdiyi faylın adını almaq üçün: {{ $('HTTP Request').item.binary.data.fileName }}

Yaddaş ən vacib məsələdir. Binary data item-in içində daşınır, yəni böyük fayllar birbaşa yaddaşa təsir edir. 50 MB-lıq 20 faylı bir icrada emal etmək asanlıqla yaddaş problemi yaradır. Self-hosted-də binary datanın necə saxlanacağını (yaddaşda, yoxsa fayl sistemində) mühit dəyişənləri ilə tənzimləmək mümkündür və bu, miqyaslamanın vacib hissəsidir.

Fayl oxumaq və yazmaq təhlükəsizlik nəticələri olan əməliyyatlardır — n8n-in işlədiyi maşının diskinə çıxış deməkdir. Self-hosted quruluşda bu imkan lazım deyilsə, müvafiq node-ları mühit dəyişəni ilə tamamilə söndürmək mümkündür.

📚 Mənbələr və sənədlər