[Документация Yandex Cloud](../../../../index.md) > [Yandex Serverless Integrations](../../../index.md) > [Пошаговые инструкции](../../index.md) > Workflows > [Конструктор шагов рабочего процесса](index.md) > Интеграционные шаги > Яндекс Диск

# Взаимодействие с файлами на Яндекс Диске

{% list tabs %}

- Консоль управления {#console}

  1. В процессе [создания](../workflow/create-constructor.md) нового рабочего процесса или [изменения](../workflow/update.md) существующего в консоли управления в блоке **Создание рабочего процесса** / **Изменение рабочего процесса** выберите `Конструктор`. 
  1. Из секции **Интеграционные шаги** в левой части экрана перетащите элемент ![yadisk-icon](../../../../_assets/yadisk-icon.svg) **Яндекс Диск** в нужное место рабочего процесса в окне конструктора.

      Перетаскивать шаги можно в обозначенные пунктирной линией блоки на графической схеме рабочего процесса, такие как **Добавить шаг** и т.п.
  1. В окне со схемой рабочего процесса нажмите на добавленный блок **Яндекс Диск**, чтобы выбрать его.
  1. В правой части окна на вкладке **Настройки**:

      1. В поле **Имя шага** задайте имя шага рабочего процесса.
      1. В поле **Действие** выберите:

          * `Загрузка на диск`, чтобы записать файл на Яндекс Диск.
          * `Загрузка с диска`, чтобы получить файл с Яндекс Диска.

      1. В поле **Тип содержимого** выберите тип содержимого файла:

          {% cut "Если загружаете файлы на диск" %}

          * `BINARY` — содержимое файла будет раскодировано из формата [Base64](https://ru.wikipedia.org/wiki/Base64).
          * `TEXT` — содержимое файла будет сохранено в простом текстовом формате.
          * `JSON` — текст файла, содержащий [JSON](https://ru.wikipedia.org/wiki/JSON), будет сохранен в виде JSON-структуры.

          {% endcut %}
              
          {% cut "Если загружаете файлы с диска" %}

          * `BINARY` — содержимое файла будет закодировано в формат [Base64](https://ru.wikipedia.org/wiki/Base64).
          * `JSON` — содержимое файла будет получено в виде [JSON](https://ru.wikipedia.org/wiki/JSON)-структуры.
          * `TEXT` — содержимое файла будет получено в простом текстовом формате.
          * `EXCEL` — содержимое файла будет преобразовано в массив страниц, где каждая страница — массив массивов строк. Поддерживаемые форматы: `XLAM`, `XLSM`, `XLSX`, `XLTM` и `XLTX`.
          * `CSV` — содержимое файла будет преобразовано в массив массивов строк путем деления строк по следующим символам-разделителям: запятая (`,`) и перенос строки.

          {% endcut %}

      1. Если вы загружаете файлы на диск, в поле **Содержимое файла** задайте содержимое, которое будет сохранено в файл.
      1. В поле **Тип диска** выберите тип Яндекс Диска:

          * `Личный` — диск принадлежит одному пользователю.
          * `Общий` — диск принадлежит организации в Яндекс 360.

          При использовании диска, принадлежащего организации, в поле **Идентификатор общего диска** укажите идентификатор диска. Идентификатор отображается в интерфейсе Яндекс Диска в адресной строке после `vd/`.

      1. В поле **Путь** укажите путь к целевому файлу на Яндекс Диске.
      1. В секции **OAuth-токен** укажите [OAuth-токен приложения](https://yandex.ru/dev/disk-api/doc/ru/concepts/quickstart#oauth) или [секрет](../../../../lockbox/concepts/secret.md) Yandex Lockbox, в котором сохранен этот токен. Выберите:

          * `Lockbox`, чтобы хранить OAuth-токен в секрете, и в блоке **Секрет** выберите секрет, его [версию](../../../../lockbox/concepts/secret.md#version) и ключ, в которых сохранен OAuth-токен.

              Если у вас еще нет секрета Yandex Lockbox, нажмите кнопку **Создать**, чтобы создать его.
            
          * `Текст`, чтобы хранить OAuth-токен в спецификации в виде текста, и в поле **Значение** введите OAuth-токен.

              {% note warning %}

              Хранить OAuth-токен в открытом виде в тексте спецификации небезопасно.

              {% endnote %}

      1. (Опционально) В поле **Таймаут, мс** задайте максимальное время выполнения текущего шага.
      1. (Опционально) Чтобы задать для шага собственную политику повторных попыток, разверните блок **Политика повторных попыток** и нажмите кнопку ![plus](../../../../_assets/console-icons/plus.svg) **Политика повторных попыток**. В появившейся форме:
         
         1. (Опционально) В поле **Начальная задержка, мс** задайте начальное значение задержки между повторными попытками выполнения шага.
         1. (Опционально) В поле **Скорость изменения задержки** задайте коэффициент, на который будет умножаться время задержки перед каждой повторной попыткой выполнения шага.
         1. (Опционально) В поле **Максимальная задержка, мс** задайте значение максимальной задержки между повторными попытками выполнения шага.
         1. В поле **Ошибки** выберите ошибки, для которых будут (или, наоборот, не будут) сделаны повторные попытки выполнения шага.
         
             Подробная информация о возможных ошибках приведена в разделе [Возможные коды ошибок](../../../concepts/workflows/execution.md#errors).
         1. (Опционально) В поле **Количество повторных попыток** задайте максимальное количество повторных попыток выполнения шага.
         1. В поле **Режим выбора ошибок** выберите:
         
             * `INCLUDE` — чтобы делать для шага повторные попытки выполнения при возникновении ошибок, указанных в поле **Ошибки**.
             * `EXCLUDE` — чтобы делать для шага повторные попытки выполнения при возникновении любых ошибок, за исключением ошибок, указанных в поле **Ошибки**.
         
         Если вы хотите удалить политику повторных попыток, ранее созданную для шага, в строке **Политика повторных попыток** нажмите ![ellipsis](../../../../_assets/console-icons/ellipsis.svg) и выберите **Удалить**.
         
         Если для шага не настроена собственная политика повторных попыток, к нему будет применяться политика повторных попыток, [заданная для всего рабочего процесса](setup-restart-policy.md).
  1. (Опционально) Перейдите на вкладку **Вход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации [состояния рабочего процесса](../../../concepts/workflows/workflow.md#state), которое передается в шаг.
  1. (Опционально) Перейдите на вкладку **Выход** и задайте [jq-шаблон](../../../concepts/workflows/templating.md) для фильтрации выходных данных шага, которые добавляются в [состояние рабочего процесса](../../../concepts/workflows/workflow.md#state).
  1. (Опционально) [Добавьте](setup-catch-rule.md) для создаваемого шага [правило перехода по ошибкам](../../../concepts/workflows/yawl/index.md#catchrule), которые могут возникать во время выполнения этого шага.

{% endlist %}

## Полезные ссылки {#see-also}

* [Спецификация YaWL](../../../concepts/workflows/yawl/integration/disk.md)
* [Создать рабочий процесс с помощью конструктора](../workflow/create-constructor.md)
* [Изменить рабочий процесс](../workflow/update.md)