Подключение Яндекс.Диска к n8n: Полное руководство

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

Предварительные требования и настройка приложения в Яндекс.OAuth

Для подключения Яндекс.Диска к n8n через стандартный встроенный узел необходим OAuth-токен, полученный через официальное API Яндекс.ID. Этот процесс требует предварительной регистрации вашего приложения в сервисе Яндекс.OAuth.

Шаг 1: Регистрация приложения в Яндекс.OAuth

    • Перейдите в Яндекс.OAuth и авторизуйтесь под своим аккаунтом Яндекс.
    • Нажмите кнопку «Зарегистрировать новое приложение».
    • Заполните обязательные поля формы:
      • Название: Укажите понятное имя, например «Мой n8n Workflow».
      • Платформы: Выберите «Веб-сервисы».
      • Callback URI №1: Это критически важный параметр. Введите следующий URL: https://app.n8n.io/rest/oauth2-credential/callback. Для self-hosted версий n8n укажите соответствующий публичный адрес вашего инстанса с тем же путем /rest/oauth2-credential/callback.
    • В разделе «Права» необходимо назначить приложению соответствующие разрешения (scopes). Для полноценной работы с файлами потребуются:
      • yadisk:read — для чтения информации о файлах и папках.
      • yadisk:write — для создания и изменения файлов и папок.
      • yadisk:app — для доступа к папке приложения.
    • Нажмите «Сохранить». После успешного создания приложения вы получите его идентификатор (ID) и пароль (Secret). Запишите их — эти данные понадобятся для настройки в n8n.

Шаг 2: Настройка учетных данных (Credentials) в n8n

  1. В интерфейсе n8n перейдите в раздел «Credentials» через главное меню (часто иконка ключа).
  2. Нажмите «Add Credential».
  3. В поиске найдите «Yandex Disk OAuth2 API» и выберите этот тип.
  4. Заполните поля в открывшейся форме:
    Поле в n8n Значение для заполнения Примечание
    Credential Name Уникальное имя для этих учетных данных (например, «Мой Яндекс.Диск») Используется для выбора подключения внутри workflow.
    Client ID Идентификатор (ID) вашего приложения из Яндекс.OAuth Обязательное поле.
    Client Secret Пароль (Secret) вашего приложения из Яндекс.OAuth Обязательное поле.
  5. После ввода Client ID и Client Secret нажмите кнопку «Connect account». n8n откроет новое окно или вкладку с авторизацией Яндекс.ID.
  6. Подтвердите запрос на предоставление прав вашему приложению, выбрав соответствующий аккаунт Яндекс.
  7. После успешной авторизации окно закроется, а в интерфейсе n8n появится сообщение об успешном подключении и идентификатор учетной записи.
  8. Сохраните учетные данные.

Использование узла Яндекс.Диска в workflow

После настройки учетных данных вы можете добавлять узел «Yandex Disk» в свои рабочие процессы. Узел предлагает множество операций для работы с файлами и папками.

Доступные операции (Operations)

Операция Назначение Ключевые параметры
Copy Копирование файла или папки на Диске. Путь к исходному ресурсу, новый путь назначения.
Download Скачивание файла с Диска. Результат — бинарные данные файла, которые можно обработать или сохранить в другом сервисе. Путь к скачиваемому файлу.
Get Many Получение списка файлов и папок в указанной директории. Аналог просмотра содержимого папки. Путь к папке, лимит элементов, фильтр по типу (файл/папка).
Upload Загрузка файла на Диск. Источником данных может быть предыдущий узел (например, скачанный файл из интернета или вложение из email). Путь для загрузки (включая имя файла), бинарные данные файла.

Пример workflow: Автоматическая загрузка вложений из почты на Яндекс.Диск

Этот пример демонстрирует создание простого рабочего процесса, который проверяет входящие письма в Gmail и загружает все вложения из них в указанную папку на Яндекс.Диске.

  1. Триггер: Добавьте узел «Schedule Trigger» для периодического запуска (например, каждые 15 минут).
  2. Получение писем: Добавьте узел «Gmail» и настройте его на операцию «Get Many». В фильтрах укажите «Unread» (непрочитанные). Настройте учетные данные для Gmail.
  3. Извлечение вложений: Добавьте узел «Extract From Email» (из пакета Email nodes). Соедините его с узлом Gmail. В настройках выберите «Attachments» и укажите, как обрабатывать несколько вложений (как отдельные элементы).
  4. Загрузка на Диск: Добавьте узел «Yandex Disk». Выберите операцию «Upload». В поле «File Path» укажите путь, например, /Входящие вложения/{{$json['messageId']}}_{{$json['attachmentName']}}. Это создаст уникальное имя файла на основе ID письма и имени вложения. В поле «Binary Data» выберите данные из предыдущего узла.
  5. Пометить как прочитанное (опционально): Добавьте еще один узел «Gmail» с операцией «Update» для изменения статуса письма на «прочитанное».
  6. Активируйте workflow и протестируйте его отправкой письма с вложением на ваш Gmail.

Особенности и ограничения API Яндекс.Диска в n8n

  • Квоты API: Яндекс.Диск имеет лимиты на количество запросов в секунду и в сутки. Для одного токена действует ограничение в ~10 000 запросов в день. Интенсивные workflow могут упираться в это ограничение.
  • Размер файлов: Через API можно загружать файлы размером до 10 ГБ при использовании специального метода загрузки по частям (resumable upload). Стандартный узел в n8n использует базовый метод загрузки, который может не поддерживать очень большие файлы.
  • Папка приложения: Используя право yadisk:app, вы можете работать с изолированной папкой приложения (app:/), что рекомендуется для хранения служебных данных ваших автоматизаций.

Альтернативные методы подключения

Если метод OAuth по каким-то причинам не подходит, можно рассмотреть альтернативные варианты интеграции.

Использование WebDAV

Яндекс.Диск предоставляет доступ по протоколу WebDAV. В n8n можно использовать узел «WebDAV» для базовых операций с файлами.

  • URL WebDAV: https://webdav.yandex.ru
  • Для аутентификации используются логин (ваш яндекс-аккаунт) и специальный пароль приложения, который нужно создать в настройках безопасности аккаунта Яндекс.
  • Ограничение: Функциональность WebDAV уже, чем у REST API (например, нет прямого доступа к метаинформации).

Создание кастомного узла (Custom Node)

Для опытных пользователей, которым требуется максимальный контроль или использование специфических методов API (например, резервирование URL для загрузки), существует возможность разработки собственного узла n8n для Яндекс.Диска на основе официальной документации API.

Ответы на часто задаваемые вопросы (FAQ)

Ошибка «redirect_uri mismatch» при подключении аккаунта. Что делать?

Эта ошибка означает несовпадение Callback URI. Убедитесь, что в приложении Яндекс.OAuth указан точный URL: https://app.n8n.io/rest/oauth2-credential/callback (для облачной версии). Для self-hosted инстанса URI должен соответствовать его публичному адресу. URI должен оканчиваться именно на /callback и не содержать лишних символов.

Можно ли использовать один токен для нескольких workflow в n8n?

Да, созданные учетные данные (Credentials) можно выбирать повторно в любом количестве узлов «Yandex Disk» в разных workflow. Нет необходимости создавать новое приложение в Яндекс.OAuth для каждого workflow.

Как обновить или перевыпустить токен, если срок его действия истек?

OAuth-токены от Яндекс могут иметь длительный срок жизни. Если токен стал недействительным, необходимо обновить подключение в n8n. Для этого зайдите в «Credentials», найдите ваши учетные данные для Яндекс.Диска и нажмите кнопку «Update». Следуйте процедуре повторной авторизации.

Почему узел не видит файлы в корне диска или в определенных папках?

Убедитесь, что в настройках приложения в Яндекс.OAuth были корректно выданы права yadisk:read и yadisk:write. Также проверьте, что в пути к файлу или папке в узле n8n используется правильный синтаксис. Корневой диск обозначается как /. Путь чувствителен к регистру.

Как загрузить очень большой файл (более 2 ГБ)?

Стандартный узел «Upload» может не поддерживать загрузку файлов большого размера из-за ограничений на передачу данных в памяти. Решением может быть:

  • Использование метода WebDAV, который более стабилен для больших файлов.
  • Разбивка файла на части с помощью других узлов n8n перед загрузкой.
  • Разработка кастомного узла, реализующего метод «Получение URL для загрузки» из API Яндекс.Диска, который предназначен для больших файлов.

Можно ли с помощью n8n предоставить общий доступ к файлу на Яндекс.Диске?

Встроенный узел «Yandex Disk» в текущей реализации не поддерживает операцию публикации файла или управления доступом. Для этого потребуется создание кастомного узла, который будет использовать соответствующие методы API Яндекс.Диска (например, «Публикация ресурса»).

Где найти логи ошибок при работе узла?

Детальная информация об ошибках API доступна в двух местах:

  • В окне выполнения конкретной ноды (нажмите на узел в выполненном workflow).
  • В общих логах n8n, которые для self-hosted версии обычно выводятся в консоль или системный журнал (например, через команду docker logs <container_name>).

Коды ошибок следует сверять с официальной документацией API Яндекс.Диска.

Заключение

Интеграция Яндекс.Диска с n8n через OAuth2 предоставляет надежный и функциональный способ автоматизации задач, связанных с управлением файлами. Ключевыми этапами являются корректная регистрация приложения в Яндекс.ID с указанием верного Callback URI и назначением необходимых прав, а также последующая настройка учетных данных в интерфейсе n8n. Понимание доступных операций узла и ограничений API позволяет создавать эффективные рабочие процессы для резервного копирования, синхронизации, обработки и перемещения данных между облачным хранилищем и сотнями других сервисов, поддерживаемых экосистемой n8n. При возникновении сложностей с OAuth всегда можно рассмотреть альтернативный вариант подключения через WebDAV.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.