Как выгрузити файл?

Как утверждает official Telegram Bot API documentation существует три способа отправить файл (фото, стикеры, аудио, медиа и т.д.):

Если файл уже зберигаеться десь на серверах Telegram или файл доступний за URL-адресою, вам не нужно его повторно завантажувати.

Но если вам нужно скачать новий файл, просто используйте пидкласи InputFile.

Тут доступни три ризни типы вхидних файлов:

Предупреждение

Поважайте Telegram

Экземпляры InputFile можно использовать повторно. Это означае, что вы можете создать экземпляр InputFile и отправить этот файл несколько разив, но Telegram не рекомендуе этого робити, и когда вы завантажуете файл один раз, просто збережить его file_id и используйте его наступного разу.

Видваниження с файловои системи

Перш за все, вам нужно будет импортувати обгортку InputFile:

from litegram.types import FSInputFile

Тепер вы можетте использовать её:

cat = FSInputFile("cat.png")
agenda = FSInputFile("my-document.pdf", filename="agenda-2019-11-19.pdf")
class litegram.types.input_file.FSInputFile(path: str | Path, filename: str | None = None, chunk_size: int = 65536)[исходный код]
__init__(path: str | Path, filename: str | None = None, chunk_size: int = 65536)[исходный код]

Об’ект для выгруження файлов из файловои системи

Параметры:
  • path – Путь к файлу

  • filename – Ім’я файлу, которое будет передано в telegram. За замовчуванням, будет взято зи шляху

  • chunk_size – Розмир фрагмени выгруження

Видваниження с буферу

Файли также можно передавати с буфера (например, вы створюете зображення с помощью Pillow и хотите отправить его в Telegram):

Імпорт обгортки:

from litegram.types import BufferedInputFile

Тепер вы можетте использовать её:

text_file = BufferedInputFile(b"Hello, world!", filename="file.txt")
class litegram.types.input_file.BufferedInputFile(file: bytes, filename: str, chunk_size: int = 65536)[исходный код]
__init__(file: bytes, filename: str, chunk_size: int = 65536)[исходный код]

Об’ект для выгруження файлов из файловои системи

Параметры:
  • file – Байти

  • filename – Ім’я файлу, которое будет передано в telegram.

  • chunk_size – Розмир фрагмени выгруження

Видваниження с URL

Если вам нужно видвантажити файл с иншого сервера, но пряме ссылку прив’язано к IP-адреси вашого сервера, или вы хотите обийти собственные обмеження на загрузка <https://core.telegram.org/bots/api#sending-files> `_ за URL-адресою, вы можете использовать :obj:`litegram.types.input_file.URLInputFile.

Імпорт обгортки:

from litegram.types import URLInputFile

Тепер вы можетте использовать её:

image = URLInputFile(
    "https://www.python.org/static/community_logos/python-powered-h-140x182.png",
    filename="python-logo.png"
)
class litegram.types.input_file.URLInputFile(url: str, headers: dict[str, Any] | None = None, filename: str | None = None, chunk_size: int = 65536, timeout: int = 30, bot: Bot | None = None)[исходный код]