Задать вопрос
@psychedelicGeek
Любитель программировать

Что за проблема с Telegram CDN при попытке получения файла через self-hosted telegram bot api?

Рассказываю подробно и детально.

Вначале я арендовал сервер через PQ.Hosting в Израиле, скомпилировал telegram-bot-api и все было нормально, но потом я узнал, что лучше всего делать сервер для работы с ботами поближе географически к дата центру Телеграмма(у меня это Нидерланды) и я конечно же побежал брать сервер в Нидерландах, взял, и теперь обработка файлов вообще не работает, никакая и ни в какую.

Телеграм CDN просто не успевает даже за 1.5 секунды отдать мне файл, я увеличил до 3 секунд, он и тут не успевает, я увеличил до 5 секунд и он тут не успевает.

А теперь по техническим вопросам:
У меня Ubuntu 24.04 на обоих серверах
Все версии ПО одинаковые, все права пользователей одинаковые, все одинаковое, я тестировал через api.telegram.org все работает безупречно.

Но стоило мне переехать и отделить свою инфраструктуру с ботами отдельно от израильской геолокации и взять поближе к дата центрам Телеграм, так тут же все боты, через вебхуки прекратили принимать файлы через Telegram CDN вообще и ни в какую.

Все порты открыты, все настроено как подобает, сообщения принимаются, вебхуки работают, а файлы, медиа не работают.

Я проверил логи telegram-bot-api и да, он реально не успевает, он видит загрузку файла, видит получение, но спустя меньше минуты сокет или соединение закрывается и файл попросту не скачивается на мой сервер в нидерландах.

я считаю что проблема точно в том, что я нахожусь очень близко географически к дата центрам и он просто не успевает обрабатывать запросы, а может он не работает с PQHosting? Это вряд ли, ведь с Израиля же все прекрасно работало.

Все проксируется через nginx и все боты запросы принимают по запросам location /bot/development, что еще не хватает? Надо делать отдельно запрос к location /file?

я уже 3-4 сутки бьюсь с этим и никак и ни в какую.

Прежде чем писать зачем тебе self-hosted telegram bot api скажу так причины:
- я создаю часть продуктов на которых будет свыше 100 активных пользователей, поэтому нужно брать self-hosted
- часть ботов должна будет обрабатывать большие файлы свыше 100мб(в api.telegram.org лимит до 50мб)
- Да я знаю что крупные боты делают проксирование, ставят rabbitmq, redis И стараются минимизировать задержки и могут обслуживать и выше 30к активных пользователей(я этого не хочу, мне проще взять и сделать сразу self-hosted telegram bot api чтобы пропускная способность была до 100к пользователей активных на бот)

На чем я пишу:
- Nodejs 22.15
- Grammy 1.36
- TypeScript 5.8
- Express 5.1

Кто нибудь с этим сталкивался? как решили?
  • Вопрос задан
  • 30 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы