Сохранение на FTP-сервер
В этой статье рассмотрим способ отправки отчёта на FTP сервер. Инструкции о том как работать с задачами описаны в разделе Общие сведения.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в МоиОтчеты Облако.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Инструмент curl.
Подойдёт любой другой REST клиент, но примеры будут построены для curl.
Активная подписка для МоиОтчеты Облако.
Доступ в интернет.
Настроенный и доступный FTP сервер.
Обратите внимание! Пункты выше описывают рекомендуемые инструменты.
Обратите внимание! Данное руководство предполагает, что у вас есть настроенный FTP-сервер для принятия файлов от внешних источников.
Создание задачи
Рассмотрим создание задачи отправки шаблона на FTP-сервер:
// Создание задачи
curl -X 'POST' \
'https://облако.моиотчеты.рф/api/tasks/v1/Tasks' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"$t": "CreateFTPUploadTaskVM",
"name": "Задача отправки по FTP",
"subscriptionId": "23e0134c816935c1e11b3737",
"ftpHost": "ftp://localhost",
"ftpPort": 21,
"ftpUsername": "FtpUser",
"ftpPassword": "password",
"archive": false,
"archiveName": "Имя архива",
"useSFTP": false,
"inputFile": {
"entityId": "61e0134c816935c1e11b3787",
"type": "Template"
},
"destinationFolder": "/путь_назначения/"
}'
// Запуск задачи по идентификатору
curl -X 'POST' \
'https://облако.моиотчеты.рф/api/tasks/v1/Tasks/{идентификатор задачи}/run' \
-H 'accept: */*' \
-d ''
В поля EntityId и SubscriptionId следует записывать реальные идентификаторы объектов. Иначе задача будет прервана с ошибкой.
Выполнение задачи из тела запроса
curl -X 'POST' \
'https://облако.моиотчеты.рф/api/tasks/v1/Tasks/run' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"$t": "RunFTPUploadTaskVM",
"name": "Задача отправки по FTP",
"subscriptionId": "23e0134c816935c1e11b3737",
"ftpHost": "ftp://localhost",
"ftpPort": 21,
"ftpUsername": "FtpUser",
"ftpPassword": "password",
"archive": false,
"archiveName": "Имя архива",
"useSFTP": false,
"inputFile": {
"entityId": "61e0134c816935c1e11b3787",
"type": "Template"
},
"destinationFolder": "/путь_назначения/"
}'
Обратите внимание! В этом случае отправка на FTP будет выполнена непосредственно этим запросом и задача не будет сохранена в базе данных.
Обратите внимание! В примерах нет заголовка Authorization потому что используется модель аутентификации, основанная на cookie. Подробнее про авторизацию читайте в разделе Аутентификация и авторизация