Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.



Название

Название

(англ)

Обязательное
Описание
Описание

(англ)

Тип данныхПримерПримечание
ДействиеЗагрузить файл
Upload file
ДаДействие читает файл на локальной файловой системе агента, из-под которого запускается действие, и сохраняет его в файловом хранилище
The action reads a file on the local file system of the agent under which the action is launched and saves it to the file storage


Перед загрузкой файла
в хранилище
действие должно подключиться к файловому хранилищу
с параметрами, указанными в настройках доступаВходные параметрыТип хранилищаStorage typeДа

Выбор из списка:

  • minio
  • s3
  • ftp

Choice from the list:

  • minio
  • s3
  • ftp
Robin.StringminioСразу закладываемся на разные типы хранилищ, чтобы 2 раза не вставатьНастройки доступаAccess settingsДаИмя конфигурационного файла, в котором хранятся настройки доступа к файловому хранилищуRobin.FilePath

Конфигурационный файл - agent.ini

Настройки в подразделах:
[file_storage]
[minio]

Endpoint= https://our-minio-proxy:9091
AccessKey=username

SecretKey=password
BucketName=digital-employee
StorageFolderPath=user-task-files
[ftp]
Endpoint= ftp://our-ftp-proxy
Username=user
Password=password
[s3]
....

Это может быть конфигурационный файл агента или иной ini-файл. Настройки хранятся в в подразделе с именем, указанным в параметре "Тип хранилища" раздела [file_storage]

В будущем перенесем эти настройки в хранилище ресурсов. Ждем когда его сделают разработчики

Настройки доступа переносим в прокси-сервис. Так более правильно с т.з. безопасности. Поэтому доступ к файлу для действия будет выглядеть как анонимный

Спека на прокси-сервис будет оформлена отдельно

Точка доступа к прокси-сервисуEndpointДаТочка доступа к прокси-сервису, откуда будет скачиваться файлEndpoint to the proxy service from where the file will be downloadedRobin.String

https://our-minio-proxy:9091

Этот параметр ЦС-сервис (уточнить какой именно и какой метод) берет из глобальных настроек и передает в робот как параметр. Далее робот подставляет этот параметр при вызове действия.

БакетBucketДаИменованное подпространство (область) файлового хранилищаNamed subspace (area) of file storageRobin.Stringuser-task-filesЭтот параметр ЦС-сервис (уточнить какой именно и какой метод) берет из глобальных настроек и передает в робот как параметр. Далее робот подставляет этот параметр при вызове действия.Путь к файлуFile pathДаПуть к файлу на локальной файловой системе агентаPath to a file on the agent's local file systemRobin.FilePath
, используя конечную точку и токен доступа, полученные им от агента, который в свою очередь получает их от сервиса настроек
Входные параметрыПуть к файлу (или файламДаМассив, в котором каждый элемент содержит путь к файлу на локальной файловой системе агента, под которым он был сохраненRobin.FilePath

[

C:\Users\<User>\Application Data\Robin Platform\2.0.0\Runs\Host\User\<task_execution_id_id>

\out\f21fb63e2fed4b51aa6cec7af7216aaf_ne_ya.jpeg 

\in\CC28BA9D-346B-4743-99FE-2AE5938030F6\File.txt,

C:\Users\<User>\Application Data\Robin Platform\2.0.0\Runs\Host\User\<task_execution_id_id>\in\CC28BA9D-346B-4743-99FE-2AE5938030F6\File2.txt,

]

Действие должно выделить имена файлов, под которыми они хранятся на локальной файловой системе и передать массив имен файлов сервису, который будет работать с MinIO

*) Уточнить папку для файлов

Действие должно выделить имя файла, под которым он хранится на локальной файловой системе

Формирование URLа для сохранения файла

Тогда URL для загрузки файла через прокси сервис формируется как конкатенация следующих строковых параметров: <Endpoint>/<Bucket>/<YYYY>/<MM>/<DD>/<local_file_name>

где:

  • <Endpoint> - точка доступ (входной параметр)
  • <Bucket> - бакет (входной параметр)
  • <YYYY> - год формирует само действие
  • <MM> - месяц формирует само действие
  • <DD> - день формирует само действие
  • <local_file_name> - имя файла, под которым он хранится на локальной файловой системе без имени папки в которой он хранится, формирует само действие

    Должен использоваться метод POST

    РезультатПуть к файлу (или файлам) в хранилище
    Path to the file in the file storage

    Да
    Полное имя файла, под которым он был сохранен в хранилищеThe full name of the file under which it was saved in the file storageRobin.String

    /user-task-files/2023/07/17/f21fb63e2fed4b51aa6cec7af7216aaf_ne_ya.jpeg

    JSON-объект, представляющий собой массив, в котором каждый элемент содержит набор метаинформации о файле (id, имя, тип контента и расположение файла). Robin.RemoteFile


    [
      {
        "Id""92BB422E-1DFD-4C38-8A7A-95D4476C3EB7",
        "FileName""File.txt",
        "ContentType""text/plain",
        "Url""/files/92BB422E-1DFD-4C38-8A7A-95D4476C3EB7"
      },
      {
        "Id""CC28BA9D-346B-4743-99FE-2AE5938030F6",
        "FileName""File2.txt",
        "ContentType""text/plain",
        "Url""/files/CC28BA9D-346B-4743-99FE-2AE5938030F6"
      }
    ]

    Путь, под которым каждый

    Путь, под которым /<Bucket>/<YYYY>/<MM>/<DD>/<local_file_name>

    файл был сохранен на файловую систему файлового хранилища

    :

    формирует сам сервис, который работает с MinIO