Skip to main content

n8n

n8n — это платформа для автоматизации рабочих процессов с открытым исходным кодом. С ее помощью без написания кода можно связывать между собой сервисы и приложения и автоматизировать работу с S3-совместимыми хранилищами. n8n имеет готовые ноды для управления на уровне объектов, префиксов и бакетов.

Настроить n8n

  1. Настройте доступ к S3.
  2. Подготовьте n8n.
  3. Подключите S3 к n8n.

1. Настроить доступ к S3

Настроить доступ может Владелец аккаунта или пользователь с ролью iam.admin.

  1. Создайте сервисного пользователя с ролью с доступом в S3. Если вы используете сервисного пользователя с ролью s3.user, object_storage_user или s3.bucket.user, в бакете должна быть настроена политика доступа и ее правила должны разрешать доступ этому пользователю.
  2. Выдайте пользователю S3-ключ.

2. Подготовить n8n

Вы можете:

  • приобрести экземпляр n8n на сайте n8n и установить его на любой сервер или устройство;
  • или использовать преднастроенный облачный сервер с n8n.

3. Подключить S3 к n8n

  1. Откройте n8n.

  2. В меню слева нажмите и выберите New credential.

  3. В окне поиска введите S3.

  4. Нажмите Continue.

  5. На этапе Connection:

    5.1. В поле S3 Endpoint укажите домен S3 API. Домен зависит от пула, в котором находится S3.

    5.2. В поле Region введите пул, в котором находится S3.

    5.3. В поле Access Key ID введите значение поля Access key из S3-ключа, который вы получили на этапе 1.

    5.4. В поле Secret Access Key введите значение поля Secret key из S3-ключа, который вы получили на этапе 1.

    5.5. Настройте тумблер Force Path Style в зависимости от типа адресации в бакете. Если вы используете:

    • Virtual-Hosted адресацию — оставьте тумблер выключенным;
    • Path-Style адресацию — включите тумблер.

    5.6. Убедитесь, что тумблер Ignore SSL Issues (Insecure) выключен.

    5.7. Нажмите Save.

  6. Проверьте подключение:

    6.1. В меню слева нажмите и выберите New workflow.

    6.2. Нажмите Add first step и выберите Trigger Manually.

    6.3. Справа от ноды нажмите и выберите S3.

    6.4. В списке Actions выберите Get many buckets.

    6.5. Нажмите Execute step. При успешном подключении будет выведен список бакетов в пуле, который вы указали на шаге 5.

Пример настройки резервного копирования данных по расписанию

В примере n8n будет каждый день получать данные из внешнего сервиса и сохранять их в бакет с датой в имени объекта. Решение будет состоять из трех нод.

  1. Откройте n8n.

  2. Настройте ноду Schedule Trigger:

    2.1. В меню слева нажмите и выберите New workflow.

    2.2. Нажмите Add first step и выберите Schedule Trigger.

    2.3. В поле Trigger Interval выберите единицу времени, в которой будете указывать частоту срабатывания триггера.

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

    2.5. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  3. Настройте ноду HTTP Request:

    3.1. Справа от ноды Schedule Trigger нажмите и выберите HTTP Request.

    3.2. В поле Method выберите GET.

    3.3. В поле URL введите адрес, откуда забираются данные для бэкапа.

    3.4. Если источник:

    • требует авторизацию — в поле Authentication выберите способ аутентификации и введите учетные данные;
    • не требует авторизацию — оставьте значение None.

    3.5. Если ответ на запрос возвращается в виде файла, например архива, в блоке Options нажмите Add optionResponse и в поле Response Format выберите File. Данные попадут в binary-поле и их можно будет загрузить в S3 как объект.

    3.6. Проверьте работу ноды, для этого нажмите Execute step. При успешной работе ноды файлы отобразятся в разделе Output.

    3.7. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  4. Настройте ноду Upload a file:

    4.1. Справа от ноды HTTP Request нажмите и выберите S3Upload a file.

    4.2. Убедитесь, что в поле Credential выбраны данные, которые вы добавили на шаге 5 при подключении S3 к n8n на этапе 3.

    4.3. В поле Resource выберите File.

    4.4. В поле Operation выберите Upload.

    4.5. В поле Bucket Name введите имя бакета, в который будут загружены файлы. Если у вас еще нет бакета в S3, создайте его.

    4.6. В поле File Name введите шаблон имени, которое будет у загруженных объектов. Можно указать шаблон имени с префиксом. Например, для шаблона backups/{{ $now.format('yyyy-LL-dd') }}.json:

    • объект будет загружен по префиксу /backups;
    • выражение в двойных фигурных скобках подставит текущую дату.

    Имя объекта будет вида backups/2026-06-02.json.

    4.7. Включите тумблер Binary File.

    4.8. Если нода HTTP Request возвращает:

    • бинарный файл — в поле Input Binary Field введите имя binary-поля из ноды HTTP Request, которую вы настроили на шаге 3, по умолчанию data;
    • не бинарный файл — в поле File Content укажите ключ.

    4.9. Проверьте работу ноды, для этого нажмите Execute step. При успешной работе ноды в бакете появится объект с именем вида backups/2026-06-02.json.

    4.10. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  5. Проверьте работу цепочки нод, для этого нажмите Execute workflow.

  6. Запустите автоматизацию резервного копирования:

    6.1. В правом верхнем углу нажмите Publish.

    6.2. Введите название версии автоматизации.

    6.3. Нажмите Publish.

Пример настройки автоматической очистки старых объектов

В примере n8n будет раз в сутки удалять из префикса /backups объекты, загруженные более 30 дней назад. Решение будет состоять из четырех нод.

  1. Откройте n8n.

  2. Настройте ноду Schedule Trigger:

    2.1. В меню слева нажмите и выберите New workflow.

    2.2. Нажмите Add first step и выберите Schedule Trigger.

    2.3. В поле Trigger Interval выберите единицу времени, в которой будете указывать частоту срабатывания триггера.

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

    2.5. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  3. Настройте ноду Get many files:

    3.1. Справа от ноды Schedule Trigger нажмите и выберите S3Get many files.

    3.2. В поле Resource выберите File.

    3.3. В поле Operation выберите Get many.

    3.4. В поле Bucket Name введите имя бакета.

    3.5. Настройте количество объектов, которое будет возвращать нода. Чтобы нода возвращала:

    • все объекты — включите тумблер Return All;
    • ограниченное количество объектов — оставьте тумблер Return All выключенным и в поле Limit введите количество объектов, которое будет возвращаться.

    3.6. Чтобы добавить префикс, в блоке Options нажмите Add fieldFolder Key и введите префикс, в примере backup/.

    3.7. Проверьте работу ноды, для этого нажмите Execute step. При успешной работе ноды в разделе Output будет выведен список объектов.

    3.8. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  4. Настройте ноду Filter:

    4.1. Справа от ноды Get many files нажмите и выберите Filter.

    4.2. В блоке условия в поле с типом данных выберите Boolean → Is true.

    4.3. В поле со значением выберите Expression и введите выражение, которое будет определять объекты старше 30 дней:

    {{ $json.LastModified.toDateTime().toUTC() <= $now.minus({ days: 30 }).toUTC() }}

    4.4. Включите тумблер Convert types where required.

    4.5. Проверьте работу ноды, для этого нажмите Execute step. При успешной работе ноды в разделе OutputTable будут отображены объекты, которые проходят фильтр (блок Kept) и не проходят (блок Discarded).

    4.6. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  5. Настройте ноду Delete a file:

    5.1. Справа от ноды Filter нажмите и выберите S3Delete a file.

    5.2. В поле Resource выберите File.

    5.3. В поле Operation выберите Delete.

    5.4. В поле Bucket Name введите имя бакета. Если у вас еще нет бакета в S3, создайте его.

    5.5. В поле File Name выберите Expression и введите выражение {{ $json.Key }}.

    5.6. В правом верхнем углу нажмите . Данные будут автоматически сохранены.

  6. Настройте ноду Loop Over Items:

    6.1. Справа от ноды Delete a file нажмите и выберите Loop Over Items.

    6.2. Удалите пустые ноды, которые добавились вместе с нодой Loop Over Items.

    6.3. Соедините выход ноды Loop Over Items с входом ноды Delete a file.

  7. Проверьте работу цепочки нод, для этого нажмите Execute workflow.

  8. Запустите автоматизацию удаления старых файлов:

    8.1. В правом верхнем углу нажмите Publish.

    8.2. Введите название версии автоматизации.

    8.3. Нажмите Publish.