Работа с файлами (tbank.files)

Файловое хранилище: загрузка и скачивание файлов по идентификатору.

  • Хост: business.tbank.ru/openapi по Bearer-токену.

  • Тело файла — application/octet-stream; скачивание возвращает «сырые» байты.

  • Клиенты: tbank.files.FilesClient (async) и tbank.files.sync.FilesClient (sync).

from tbank.files import FilesClient

client = FilesClient(token="business-token")

# загрузить файл
uploaded = await client.upload_file(
    pdf_bytes, document_type="ACT", file_name="act.pdf", ttl="86400",
)

# скачать файл по идентификатору
content = await client.download_file(uploaded.file_id, document_type="ACT")

Если файл хранится в base64, передайте base64_encoded=True — заголовок X-Base64-Encoded уйдёт в запрос.

Клиент

class tbank.files.aio.FilesClient(token, *, base_url=None, sandbox=False, retry=None, transport=None)[исходный код]

Базовые классы: BaseAsyncClient

Асинхронный клиент файлового хранилища: загрузка и скачивание файлов.

Работает на обычном хосте по Bearer-токену. Тело файла передаётся как application/octet-stream; скачивание возвращает «сырые» байты.

Параметры:
async upload_file(content, *, document_type, base64_encoded=False, business_type=None, file_name=None, ttl=None)[исходный код]

Загрузить файл. Возвращает его идентификатор.

Параметры:
  • content (bytes)

  • document_type (str)

  • base64_encoded (bool)

  • business_type (str | None)

  • file_name (str | None)

  • ttl (str | None)

Тип результата:

FileUploadResult

async download_file(file_id, *, document_type, base64_encoded=False)[исходный код]

Скачать файл по идентификатору (бинарное содержимое).

Параметры:
  • file_id (str)

  • document_type (str)

  • base64_encoded (bool)

Тип результата:

bytes

Модели

class tbank.files.models.FilesModel[исходный код]

Базовые классы: BaseModel

Базовая модель домена: snake_case в Python, camelCase на проводе.

model_config = {'alias_generator': <function to_camel>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.files.models.FileUploadResult(*, fileId)[исходный код]

Базовые классы: FilesModel

Параметры:

fileId (str)

model_config = {'alias_generator': <function to_camel>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].