.. _etl_attach: Работа с вложениями через S3 ################################ Загрузка данных в хранилище (Endpoint – uploadAttachment) ************************************************************** Перед загрузкой источнику данных необходимо сгенерировать UUID (идентификатор для новой порции данных) и вставить его в запрос с Endpoint’ом ``/uploadAttachment``. При совпадении имен вложений в хранилище, вложение перезаписывается. Пример запроса на загрузку вложения в хранилище представлен ниже: .. code-block:: curl -X POST "http://:8088/api/v1/secure/////uploadAttachment" -H "Authorization: Bearer " -F upload=@"document.pdf" -F requestId=13f2475e-f3dc-4c9e-b2f6-3a98320261f1 -F name=Doc_1 где: - ``upload`` — путь до загружаемого файла-вложения; - ``requestId`` — UUID идентификатор запроса; - ``name`` — уникальное имя вложения. После успешной загрузки при проверке по Endpoint’у ``/status`` (пример запроса описан в :ref:`etl_check`) Витрина данных вернёт JSON-ответ, содержащий статус-сообщение: .. code-block:: json { "requestId": "13f2475e-f3dc-4c9e-b2f6-3a98320261f1", "statusCode": "UPDATED", "statusMessage": "Файл Doc_1 успешно обновлен." } где: - ``requestId`` — UUID идентификатор запроса; - ``statusCode`` — статус код результата запроса (SUCCESS - запрос выполнен успешно; UPDATED – данные обновлены); - ``statusMessage`` — описание статусного сообщения. Пример неуспешной загрузки после проверки по endpoint’у /status (пример запроса описан в :ref:`etl_check`) представлен ниже: .. code-block:: json { "requestId": "13f2475e-f3dc-4c9e-b2f6-3a98320261f1", "statusCode": "ERROR", "statusMessage": "Произошла ошибка" } где: - ``requestId`` — UUID идентификатор запроса; - ``statusCode`` — статус код результата запроса (ERROR – запрос завершился ошибкой); - ``statusMessage`` — описание статусного сообщения. Удаление данных из хранилища (Endpoint – deleteAttachment) ****************************************************************** Для того чтобы удалить вложения из хранилища S3 необходимо направить следующий запрос: .. code-block:: curl -X DELETE "http://:8088/api/v1/secure/////deleteAttachment/Doc_1/requestId/" -H "Authorization: Bearer " где: - ``requestId`` — UUID идентификатор запроса. В результате успешного удаления Витрина данных вернёт JSON-ответ, содержащий статус-сообщение: .. code-block:: json { "requestId": "13f2475e-f3dc-4c9e-b2f6-3a98320261f1", "statusCode": "SUCCESS", "statusMessage": "Файл Doc_1 успешно удален." } где: - ``requestId`` — UUID идентификатор запроса; - ``statusCode`` — статус код результата запроса (SUCCESS - запрос выполнен успешно); - ``statusMessage`` — описание статусного сообщения. Если удаление завершилось ошибкой, то Витрина данных вернёт JSON-ответ c кодом ошибки: .. code-block:: json { "requestId": "13f2475e-f3dc-4c9e-b2f6-3a98320261f1", "statusCode": "NOT_FOUND", "statusMessage": "Файл Doc_1 не найден." } где: - ``requestId`` — UUID идентификатор запроса; - ``statusCode`` — статус код результата запроса (NOT_FOUND); - ``statusMessage`` — описание статусного сообщения. .. _responce_code_attach: Описание возвращаемых кодов ********************************* .. table:: Описание возвращаемых кодов +------------------+---------+---------------------+ | **Наименование** | **Код** | **Описание** | +==================+=========+=====================+ | EMPTY_ATTACHMENT | 400 | нет файла вложения | +------------------+---------+---------------------+ | ERROR | 500 | Внутренняя ошибка | +------------------+---------+---------------------+ | SUCCESS | 200 | Успешное выполнение | +------------------+---------+---------------------+ | UPDATED | 200 | данные обновлены | +------------------+---------+---------------------+