Работа с файлами (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; скачивание возвращает «сырые» байты.
- Параметры:
token (str)
base_url (Optional[str])
sandbox (bool)
retry (Optional[RetryPolicy])
transport (Optional[AsyncTransport])
- async upload_file(content, *, document_type, base64_encoded=False, business_type=None, file_name=None, ttl=None)[исходный код]¶
Загрузить файл. Возвращает его идентификатор.
Модели¶
- 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].