Безопасная работа с файлами без кодирования

Бесплатная библиотека FileAPI Kit позволяет выполнять в Loginom все действия над папками и файлами в no-code стиле без кодирования. Сценарии, созданные с ее помощью, не зависят от операционной системы (Linux/Windows) и обеспечивают безопасную работу на сервере

При аналитической обработке регулярно возникает потребность выполнения файловых операций: создание, удаление, переименование папок/файлов и т.п. Типичный кейс — консолидация данных о продажах розничной сети при помощи ежедневной выгрузки информации в файлы с последующей загрузкой в хранилище данных.

Чаще всего для этого используются некоторые соглашения. Например, выгрузки складируются в определенную папку на сервере, а имена файлов формируются как комбинация номера магазина и даты продаж. Каждые 10 минут автоматически запускаются сценарии обработки, которые должны перенести данные из всех обнаруженных в папке файлов в хранилище, а по завершении операции — удалить их.

Loginom позволяет реализовать подобный ETL-процесс, но для автоматизации всех действий необходимо выполнение в сценарии операций с файловой системой, например, получение списка файлов или очистка папки. Эти операции можно выполнить при помощи 3-х встроенных в Loginom компонентов:

  1. Выполнение программы
  2. Python
  3. JavaScript

Применение двух первых способов в серверных редакциях небезопасно, т.к. с их помощью пользователь может совершать практически любые операции, например, получить доступ к данным за пределами файлового хранилища Loginom. Именно поэтому по умолчанию в серверных версиях их использование запрещено, и права на запуск должен предоставить администратор. Кроме того, компонент «Выполнение программы» доступен только в редакции под Windows.

Более безопасным является применение JavaScript, в котором реализован интерфейс для работы с файловой системой FileStorage API. Он предоставляет набор функций для выполнения операций с файлами и папками непосредственно из узла JavaScript. Но для его применения необходимо знание данного языка программирования, что отсекает определенное количество пользователей.

Библиотека для работы с файлами

Для решения задачи безопасного выполнения файловых операций внутри сценария без привлечения программистов была разработана библиотека компонентов FileAPI Kit. Она бесплатна и доступна во всех редакциях Loginom. Настольная версия будет обращаться к файловой системе компьютера, а серверная — к Loginom FileStorage.

FileAPI включает в себя следующий список компонентов:

  • Архивировать папку;
  • Копировать папку;
  • Копировать список файлов;
  • Копировать файл;
  • Переименовать файл или папку;
  • Переместить папку;
  • Переместить список файлов;
  • Переместить файл;
  • Проверка пути;
  • Создать папку;
  • Список объектов;
  • Удалить папку;
  • Удалить файл.

Благодаря данной библиотеке все операции с файлами и папками будут выполняться без написания кода. Таким образом снижается порог входа, т.к. для работы не потребуются знания JavaScript. Теперь достаточно подключить библиотеку FileAPI Kit и использовать готовые компоненты.

Работа с файлами при помощи библиотеки не зависит от операционной системы. Логика, спроектированная для Windows, будет работать на Linux без каких-либо изменений и доработок. Следовательно, ее применение позволяет создавать универсальные сценарии.

Применения FileAPI Kit безопасно «из коробки». Для выполнения операций не требуется предоставление прав администратора, а сценарий будет работать только с теми файлами, доступ к которым разрешен, в частности, при использовании сервера — это файлы доступные пользователю в файловом хранилище Loginom.

Пример сценария

Ниже представлен сценарий, который решает задачу автоматического переноса файлов с продажами в хранилище, которая была описана в начале статьи.

В описанном выше кейсе файлов с данными будет много, и их количество может изменяться. Например, если торговая точка не работала в течение дня, то и отчет генерироваться не будет. В сценарии это отрабатывается корректно.

Сценарий Lofinom

Сценарий Loginom

Сначала необходимо получить перечень всех файлов, которые требуют переноса. Воспользуемся узлом «Список файлов». В окне «Настройка переменных» необходимо указать путь к папке, в которой содержатся необходимые файлы. А также установить значение true/false для включения либо исключения вложенных папок в список.

Настройка переменных

Настройка переменных

На первом выходном порту сформируется таблица с именами всех файлов, которые содержатся в указанной папке.

Список файлов

Список файлов

Параллельно создадим новую папку, куда будут перемещены загруженные данные. Для этого перенесем на область выполнения сценария узел «Создать папку». В настройках необходимо указать путь, по которому будет располагаться данная папка.

Далее добавим узел «Переместить список файлов». На первый входной порт подадим данные, сформированные компонентом «Список файлов», второй порт соединим с узлом «Создать папку». На этом настройка завершена. Как только узел будет запущен на выполнение, весь список файлов переместится из одной папки в другую.

Заключающим этапом после переноса файлов будет удаление исходной папки, в которой они располагались. Для этого воспользуемся компонентом «Удалить папку». В окне «Настройка соответствия между переменными» необходимо указать расположение данной папки. После завершения работы сценария файлы будут перенесены в новую папку, а исходная будет удалена.

Аналитик должен добавить блок необходимых действий для того, чтобы выполнялось не только перемещение/удаление файлов, но и их обработка. Затем настроить автоматический запуск сценария для ежедневного переноса данных о продажах в хранилище.

Преимущества библиотеки

Использование библиотеки упрощает работу с файлами и делает ее доступной специалисту не знакомому с программированием:

  1. Любые действия с файлами без кодирования в low-code стиле;
  2. Безопасная работа с файлами и папками на сервере и рабочей станции;
  3. Не требуется предоставление администратором дополнительных прав или установки ПО;
  4. Единообразная работа в Windows и Linux.

Библиотека FileAPI Kit доступна бесплатно всем пользователям Loginom для использования как в коммерческих, так и некоммерческих целях.

Другие материалы по теме: 

Мастерская Loginom Skills: онлайн-воркшопы с экспертом

Библиотеки компонентов Loginom Kits: новые релизы и обзор

Смотрите также