Выгрузка файлов на Яндекс Диск

1. Введение

Вам нужно выгрузить файлы из записей Бипиума на Яндекс Диск. Когда данных немного — можно скачать и загрузить их вручную. Но с увеличением числа файлов ручная выгрузка файлов становится утомительной. Бипиум может автоматизировать процесс выгрузки файлов.

2. Как это будет работать у вас

В каталоге «‎Правила загрузки» создается запись с указанием каталога и ID поля типа «‎Файл» из которого нужно выгрузить файлы на Яндекс Диск:

После сохранения записи Бипиум выгружает все файлы из указанного поля каталога. Состояние выгрузки можно отслеживать по полям из секции «‎Служебная информация» записи правила.

Запись правила в момент выгрузки:

Запись правила после успешного завершения выгрузки:

Файлы будут размещены на Яндекс Диске по следующему пути:

//  disk.yandex.ru/Выгрузки Бипиум/наименование_каталога/ID_записи

Так выглядит запись из выгружаемого каталога «‎Товары»:

Так выглядят выгруженные из этой записи файлы на Яндекс Диске:

3. Принцип работы

  • При создании записи в каталоге с правилами, сценарий обработки записи проверяет наличие и тип указанного поля в структуре выбранного каталога. Указанное поле должно присутствовать в структуре каталога и его тип должен быть файлом. Если условия не выполняются, то сценарий обработки записи установит статус «‎Ошибка» для правила

  • Если проверка прошла успешно, сценарий обработки новой записи запустит сценарий загрузки файлов.

4. Реализация

4.1. Получение OAuth-токена от Яндекс

Для загрузки файлов на Яндекс Диск вам нужно получить OAuth-токен Яндекса. Узнать о том, что такое OAuth-токен и как его получить, вы можете в документации Яндекса по ссылке.

4.2. Открытие каталога каталогов

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

Создайте новую запись в каталоге «Внешние запросы». В качестве сценария прикрепите следующий файл сценария.

Файл сценария выглядит следующим образом:

Этот сценарий открывает отображение каталога «Каталоги» в вашей системе.

В сценарии нужно изменить:

  • Компонент «Открываем каталог каталогов». В поле «Заголовки (headers)» в значении заголовка «from» укажите поддомен вашей системы. Например, для домена https://test.bpium.ru нужно указать «test».

Запустите сценарий во внешнем запросе, перейдя по полному адресу внешнего запроса.

Если все сделано правильно, в отделе «Управление» появится каталог «Каталоги» со списком всех каталогов в системе.

4.3. Создание каталога правил загрузки

Создайте каталог «Правила загрузки». В этом каталоге будут собраны правила загрузки файлов и статус их выполнения. Поля каталога нужно создавать в том же порядке, не нарушая последовательность id-полей:

  • Правило (Секция)

  • Наименование (Текст). Описание: Содержит наименование правила.

  • Статус (Статус) Описание: Статус выполнения процесса загрузки файлов. Значения: «В очереди», «Запущен», «Завершен», «Ошибка». Будет меняться автоматически исходя из результата выполнения сценария загрузки. Настройки: По умолчанию: первый элемент, редактируемое только через API.

  • Каталог (Связанный каталог) Описание: Содержит каталог, из записей которого будут загружаться файлы на Яндекс Диск. Настройки: Обязательное поле, связь с каталогом «Каталоги».

  • ID-поля для файлов (Текст) Описание: Содержит id-поля для файлов в выбранном каталоге. Настройки: Обязательное поле.

  • Служебная информация (Секция)

  • Дата запуска (Дата) Описание: Содержит в себе дату создания правила. Будет проставляться автоматически при создании правила. Настройки: «С временем», редактируемое только через API.

  • Дата окончания (Дата) Описание: Содержит в себе дату завершения процесса загрузки файлов. Будет проставляться автоматически после завершения сценария загрузки. Настройки: «С временем», редактируемое только через API

  • Лог (Текст) Описание: Содержит в себе данные о выполнении процесса загрузки. Будет заполняться автоматически в зависимости от результатов выполнения процесса загрузки. Настройки: Многострочный текст, редактируемое только через API

4.4. Автоматизации

Сценарий выгрузки данных

В системном каталоге «Сценарии» создайте запись и приложите к нему файл сценария: «Выгрузка файлов на Яндекс-Диск».

Этот сценарий не связан с событиями. Он запускается из сценария «Запустить выгрузку файлов».

Сценарий выглядит следующим образом:

Сценарий выполняет:

  • Создание корневого каталога «Выгрузки Бипиум»

  • Создание подкаталога с названием выбранного каталога

  • Получение пачки записей из выбранного каталога

В сценарии нужно изменить:

  • В компоненте «path1 & path2 & Authorization» в поле «Authorization» укажите ваш OAuth-токен.

Сценарий запуска выгрузки файлов

В системном каталоге «Сценарии» создайте запись и приложите к нему файл сценария: «Запустить выгрузку файлов».

Сценарий выглядит следующим образом:

Сценарий выполняет:

  • Получение структуры выбранного каталога

  • Проверка наличия указанного поля в структуре каталога и типа данного поля

  • Если условия выполняются, то запускается сценарий выгрузки файлов. Если условия не выполняются, то в правиле фиксируется ошибка.

В сценарии нужно изменить:

  • В компоненте «Запуск процесса» в поле «Сценарий» укажите сценарий «Запустить выгрузку файлов».

Событие обработки каталога правил

В системном каталоге «События» нужно создать событие для каталога «Правила загрузки»:

Событие отслеживает создание записи (уведомление) в каталоге правил и запускает сценарий запуска выгрузки файлов.

В качестве сценария прикрепите сценарий «‎Запустить выгрузку файлов».

5. Тестирование

Для тестирования создайте новую запись в каталоге «Правила загрузки»: задайте правилу любое наименование. Выберите каталог, в котором есть поле для файлов. Введите id-поля для файлов в выбранном каталоге.

Если в выбранном каталоге указанное поле действительно является полем для файлов, то сценарий запустит процесс загрузки файлов, а статус перейдет на «Запущен»:

После завершения процесса загрузки файлов во всех записях каталога, статус изменится на «Завершен»:

Пример записи с файлом в Бипиум:

Файлы на Яндекс Диске после загрузки:

Last updated