---
title: 'n8n'
sidebar_label: 'n8n'
sidebar_position: 16
description: 'Как настроить n8n и работать с S3'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import GrantAccess from '@site/docs/_partials/s3/grant-access.mdx'
import PlusIcon from '@selectel/docux/icons/plus'
import CloseIcon from '@selectel/docux/icons/close'

# n8n

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

## Настроить n8n \{#configure-n8n}

1. [Настройте доступ к S3](#configure-access-to-s3).
2. [Подготовьте n8n](#prepare-n8n).
3. [Подключите S3 к n8n](#connect-s3-to-n8n).

### 1. Настроить доступ к S3 \{#configure-access-to-s3}

<GrantAccess />

### 2. Подготовить n8n \{#prepare-n8n}

Вы можете:

* приобрести экземпляр n8n на [сайте n8n](https://n8n.io/) и установить его на любой сервер или устройство;
* или использовать преднастроенный [облачный сервер с n8n](/cloud-servers/applications/ml-ai/n8n.mdx).

### 3. Подключить S3 к n8n \{#connect-s3-to-n8n}

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

2. В меню слева нажмите <PlusIcon /> и выберите **New credential**.

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

4. Нажмите **Continue**.

5. На этапе **Connection**:

   5.1. В поле **S3 Endpoint** укажите [домен S3 API](/s3/manage/domains.mdx#s3-api-domains). Домен зависит от [пула](/infrastructure/locations.mdx#pool), в котором находится S3.

   5.2. В поле **Region** введите [пул](/infrastructure/locations.mdx#pool), в котором находится S3.

   5.3. В поле **Access Key ID** введите значение поля **Access key** из S3-ключа, который вы [получили на этапе 1](#configure-access-to-s3).

   5.4. В поле **Secret Access Key** введите значение поля **Secret key** из S3-ключа, который вы [получили на этапе 1](#configure-access-to-s3).

   5.5. Настройте тумблер **Force Path Style** в зависимости от [типа адресации](/s3/buckets/addressing-types.mdx) в бакете. Если вы используете:

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

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

   5.7. Нажмите **Save** → <CloseIcon />.

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

   6.1. В меню слева нажмите <PlusIcon /> и выберите **New workflow**.

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

   6.3. Справа от ноды нажмите <PlusIcon /> и выберите **S3**.

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

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

## Пример настройки резервного копирования данных по расписанию \{#backup-on-schedule-example}

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

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

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

   2.1. В меню слева нажмите <PlusIcon /> и выберите **New workflow**.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   4.1. Справа от ноды HTTP Request нажмите <PlusIcon /> и выберите **S3** → **Upload a file**.

   4.2. Убедитесь, что в поле **Credential** выбраны данные, которые вы добавили на шаге 5 при [подключении S3 к n8n на этапе 3](#connect-s3-to-n8n).

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

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

   4.5. В поле **Bucket Name** введите имя бакета, в который будут загружены файлы. Если у вас еще нет бакета в S3, [создайте его](/s3/buckets/create-bucket.mdx).

   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. В правом верхнем углу нажмите <CloseIcon />. Данные будут автоматически сохранены.

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

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

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

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

   6.3. Нажмите **Publish**.

## Пример настройки автоматической очистки старых объектов \{#automatic-old-objects-cleaning-example}

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

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

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

   2.1. В меню слева нажмите <PlusIcon /> и выберите **New workflow**.

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

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

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

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

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

   3.1. Справа от ноды Schedule Trigger нажмите <PlusIcon /> и выберите **S3** → **Get 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 field** → **Folder Key** и введите префикс, в примере `backup/`.

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

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

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

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

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

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

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

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

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

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

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

   5.1. Справа от ноды Filter нажмите <PlusIcon /> и выберите **S3** → **Delete a file**.

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

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

   5.4. В поле **Bucket Name** введите имя бакета. Если у вас еще нет бакета в S3, [создайте его](/s3/buckets/create-bucket.mdx).

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

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

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

   6.1. Справа от ноды Delete a file нажмите <PlusIcon /> и выберите **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**.

<Formbricks />
