Obsah článku
title: "Vytvorenie n8n workflow na sledovanie a čítanie nových súborov"
slug: "n8n-file-watcher-workflow"
technologies: ["n8n"]
tags: ["n8n", "workflow", "automatizacia", "subory", "local-files"]
date_solved: "2025-08-17"
Projekt/Téma: Vytvorenie n8n workflow na sledovanie a čítanie nových súborov
- Cieľ / Problém na vyriešenie: Cieľom bolo vytvoriť automatizovaný proces v n8n, ktorý sa aktivuje pri vytvorení nového súboru v sledovanom adresári na NASe, načíta jeho obsah a pripraví ho na ďalšie spracovanie.
- Použité technológie a nástroje:
- Platforma: n8n
- Kľúčové uzly:
Local File Trigger,Read/Write Files from Disk,If,Extract from Text File
- Kľúčové postupy a konfiguračné kroky:
- Spúšťač: Pôvodne použitý
Local File Triggersa ukázal ako nespoľahlivý pre NFS. Bol nahradenýSchedule Trigger(Cron), ktorý beží v pravidelných intervaloch (polling). - Načítanie súboru: Použitie uzla
Read/Write Files from Disks operáciou "Read File(s) From Disk". Cesta k súboru bola dynamicky vložená z výstupu spúšťača pomocou výrazu (expression). - Vetvenie: Použitie uzla
Ifna rozdelenie workflow podľa typu súboru. Podmienky boli nastavené na kontrolu prípony (fileExtension) a MIME typu (mimeType). - Extrakcia textu: Pre vetvu spracovávajúcu textové súbory bol použitý uzol
Extract from Text Filena konverziu binárnych dát (zo vstupného poľadata) na textový reťazec. - Presun súboru: Po úspešnom spracovaní sa súbor presunie pomocou
Execute Commanda príkazumvdoprocessedadresára, aby sa zabránilo duplicitnému spracovaniu. - Výsledné kódy a skripty:
- Výraz pre cestu k súboru v uzle
Read/Write Files from Disk:{{ $json.path }} - Príkaz pre presun súboru v
Execute Command:mv "{{ $node["Read/Write Files from Disk"].json.filePath }}" "/data_input/kb/processed/"
- Výraz pre cestu k súboru v uzle
- Zistené problémy a riešenia (Gotchas):
- Problém: Pôvodný spúšťač
Local File Triggernereagoval na súbory vytvorené cez NFS. - Riešenie: Zmena stratégie z "push" (
inotify) na "pull" (polling). Pôvodný spúšťač bol nahradenýSchedule Trigger(Cron), ktorý periodicky kontroluje obsah adresára. - Problém: Operácia
InsertvMySQLuzle prerušila slučku a spracovala len prvý súbor zo zoznamu. - Riešenie: Obnovenie slučky vložením "priebežného" uzla (
Set) pred databázovú operáciu, čím sa zaistilo, že každý súbor je spracovaný v samostatnej exekúcii.
- Problém: Pôvodný spúšťač
- Finálny výsledok / Záver:
Workflow je aktívny a plne funkčný. Automaticky deteguje pridanie nových súborov v pravidelných intervaloch, spracuje ich, vloží do databázy a presunie, čím je pripravený na ďalšiu dávku.