Мы разработали Workflow для n8n, который сканирует Яндекс Диск, создает структуру папок и записывает пути всех найденных папок в базу данных Supabase. Это позволяет легко управлять и отслеживать организацию файловой системы в облаке.
Workflow запускается по таймеру каждые 10 секунд и при каждом запуске проходит цикл сканирования. К сожалению не удалось сделать в n8n что бы за один запуск были просканированы все папки.
В данном примере использованы ноды PoatgreSQL и используется база данных Supabase
Структура таблицы uploadfolder
- id - уникальное, автоинкремент
- folder_name - поле text, для записи имени папки
- yadisk_path - поле text, для записи пути папки от корня Яндекс Диск
- skan - поле text, по умолчанию no. Это поле для того, что бы записывать какая папка уже просканирована
Описание нод workflow
Edit Fields - присваиваются переменные OAuthkey - АПИ ключ Яндекс Диска, путь к начальной папке от корня Яндекс Диска, имя начальной папки
Execute a SQL query - создает запись в базе данных начальной папки, если ее там нет. Если запись уже есть, то пропускает.
Select rows from a table - выбирает из базы данных одну запись у которой поле skan=no (папка еще не сканирована).
Update rows in a table - записывает выбранной ранее записи значение skan=yes (папка просканирована)
HTTP Request - загружает содержание выбранной папки с Яндекс Диска
Split Out - делит структуру на единичные элементы
If - если в структуре есть папки то идет дальше
Loop Over Items - цикл записи в базу данных
Insert rows in a table - записывает в базу данных все подпапки выбранной папки. В таблице поле skan по умолчанию ставится no
Дополнительно можно сделать еще один Workflow который будет проверять на доступность каждую папку из таблицы базы данных, так вы сможете поддерживать актуальность всех своих папок.
Имея структуру папок на Яндекс Диск можно создавать структуру файлов, следить за обновлении в структуре Яндекс Диска.
