.. _blob-specification: Спецификация модуля "BLOB-адаптер" ------------------------------------- .. code-block:: yaml openapi: 3.0.3 info: version: '1.0' title: blob-adapter description: Предназначен для выполнения запросов BLOB по ссылке tags: - name: blob description: Запрос BLOB по ссылке servers: - url: 'http://127.0.0.1:8189' paths: /attachment/{link}: get: summary: Получение BLOB по ссылке description: Синхронное получение blob-объекта deprecated: false operationId: blobRequest tags: - blob parameters: - name: requestId in: header description: Идентификатор запроса, полученный от Агента Потребителя required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' - name: queryRequestId in: header description: Идентификатор исходного запроса, в рамках которого была получена ссылка на blob required: false schema: type: string example: '11118ab2-44db-4dcb-8ae5-2365121b1111' - name: Request-Timeout in: header description: 'Таймаут запроса, в секундах' required: false schema: type: integer example: 5 - name: link in: path description: 'ссылка на blob' required: true schema: type: string example: 'internal.example.com:8080/datamart/data/v1/blobs/' responses: '200': description: Содержимое blob content: application/octet-stream: schema: type: object headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' content-type: schema: type: string example: text/plain; charset=utf-8 content-disposition: schema: type: string example: attachment; filename="list.txt" '400': description: Bad Request Ошибка парсинга сообщения content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonValidationErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '408': description: Request Timeout Ошибка таймаута content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonTimeoutErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '500': description: Internal Server Error Внутренняя ошибка content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonInternalErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' delete: summary: Удаление BLOB по ссылке description: Синхронное удаление blob-объекта operationId: blobDelete tags: - blob parameters: - name: requestId in: header description: Идентификатор запроса required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' - name: Request-Timeout in: header description: 'Таймаут запроса, в секундах' required: false schema: type: integer example: 5 - name: link in: path required: true description: ссылка на blob schema: type: string responses: '200': description: Удаление данных выполнено успешно headers: requestId: $ref: '#/components/headers/requestId' '400': description: Bad Request Ошибка парсинга сообщения content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonValidationErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '408': description: Request Timeout Ошибка таймаута content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonTimeoutErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '500': description: Internal Server Error Внутренняя ошибка content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonInternalErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' /attachment: post: summary: Запись BLOB по ссылке description: Синхронная запись blob-объекта operationId: blobSave tags: - blob parameters: - name: requestId in: header description: Идентификатор запроса required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' - name: Request-Timeout in: header description: 'Таймаут запроса, в секундах' required: false schema: type: integer example: 5 - name: content-type in: header required: false schema: type: string example: text/plain; charset=utf-8 - name: content-disposition in: header required: false schema: type: string example: attachment; filename="list.txt" requestBody: required: true content: multipart/form-data: schema: type: object required: [ upload, name ] properties: data: type: string description: Бинарные данные format: binary link: type: string description: Ссылка на blob responses: '200': description: Загрузка данных выполнена успешно headers: requestId: $ref: '#/components/headers/requestId' '400': description: Bad Request Ошибка парсинга сообщения content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonValidationErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '408': description: Request Timeout Ошибка таймаута content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonTimeoutErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '500': description: Internal Server Error Внутренняя ошибка content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonInternalErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' /download: post: summary: Получение BLOB по ссылке description: Синхронное получение blob-объекта (deprecated) deprecated: true operationId: blobRequestDeprecated tags: - blob parameters: - name: requestId in: header description: Идентификатор запроса, полученный от Агента Потребителя required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' - name: queryRequestId in: header description: Идентификатор исходного запроса, в рамках которого была получена ссылка на blob required: false schema: type: string example: '11118ab2-44db-4dcb-8ae5-2365121b1111' - name: Request-Timeout in: header description: 'Таймаут запроса, в секундах' required: false schema: type: integer example: 5 requestBody: required: true content: application/json: schema: type: object description: Ссылка на blob properties: link: type: string example: 'internal.example.com:8080/datamart/data/v1/blobs/' responses: '200': description: Содержимое blob content: application/octet-stream: schema: type: object headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' content-type: schema: type: string example: text/plain; charset=utf-8 content-disposition: schema: type: string example: attachment; filename="list.txt" '400': description: Bad Request Ошибка парсинга сообщения content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonValidationErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '408': description: Request Timeout Ошибка таймаута content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonTimeoutErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' '500': description: Internal Server Error Внутренняя ошибка content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/CommonInternalErrorResponse' headers: requestId: $ref: '#/components/headers/requestId' queryRequestId: $ref: '#/components/headers/queryRequestId' /uploadAttachment: post: summary: Запись BLOB по ссылке description: Синхронная запись blob-объекта (deprecated from dtm-uploader) deprecated: true operationId: blobSaveDep tags: - blob requestBody: required: true content: multipart/form-data: schema: type: object required: [upload, name,requestId] properties: upload: type: string description: Бинарные данные format: binary name: type: string description: Ссылка на blob requestId: type: string description: Идентификатор запроса responses: '200': description: Ответ content: application/json: schema: $ref: '#/components/schemas/dtmUploaderResponseUpload' /deleteAttachment/{name}/requestId/{requestId}: delete: summary: Удаление BLOB по ссылке description: Синхронное удаление blob-объекта (deprecated from dtm-uploader) deprecated: true operationId: blobDeleteDep tags: - blob parameters: - name: requestId in: path description: Идентификатор запроса required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' - name: name in: path description: Имя удаляемого файла required: true schema: type: string example: 'photo.jpg' responses: '200': description: Ответ content: application/json: schema: $ref: '#/components/schemas/dtmUploaderResponseUpload' components: headers: requestId: description: Идентификатор запроса, полученный от Агента Потребителя required: true schema: type: string format: uuid example: '2e8c8ab2-44db-4dcb-8ae5-2365121b4e14' queryRequestId: description: Идентификатор исходного запроса, в рамках которого была получена ссылка на blob required: false schema: type: string example: '11118ab2-44db-4dcb-8ae5-2365121b1111' schemas: dtmUploaderResponseUpload: type: object required: [requestId,statusCode,statusMessage] properties: requestId: type: string statusCode: type: string statusMessage: type: string CommonInternalErrorResponse: type: object required: - error properties: error: description: Объект, содержащий информацию об ошибке type: object required: - code - message properties: code: description: Код ошибки type: string enum: - Internal Server Error message: description: Сообщение об ошибке type: string example: error: code: Internal Server Error message: 'Ошибка выгрузки BLOB: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: 1825037AB1C5E969; S3 Extended Request ID: 3b051705-fed5-4804-bcbd-32266485a803; Proxy: null)' CommonValidationErrorResponse: type: object required: - error properties: error: description: Объект, содержащий информацию об ошибке type: object required: - code - message properties: code: description: Код ошибки type: string enum: - Bad Request message: description: Сообщение об ошибке type: string example: error: code: Bad Request message: "Отсутствует обязательный заголовок 'requestId'" CommonTimeoutErrorResponse: type: object required: - error properties: error: description: Объект, содержащий информацию об ошибке type: object required: - code - message properties: code: description: Код ошибки type: string enum: - Request Timeout message: description: Сообщение об ошибке type: string