Как использовать файлы одного телеграм бота другому
Вобщем есть 2 телеграм бота. Один пишет txt файлы в определённую деррикторию, а второй читает их. Где нужно хостить таких ботов, чтобы они могли взаимодействовать с этими файлами оба? Тоесть 1 например сидит на одном хостинге с папкой этих файлов, а второй чтобы как-то обращался к 1 боту и смотрел ту папку
Ответы (2 шт):
Если Вам ничего не мешает, то можно настроить работу 2-х приложений на 1 сервере. Как пример, заворачиваете их в Docker-контейнеры и настраиваете их работу на разных портах. Находясь на одном сервере, они смогут получить доступ к одной и той же папке, которая примонтирована у обоих контейнеров. Инструкций по заворачиванию приложений в Docker много, вот пример для aiogram.
Если всё же нужно именно разнести приложения на разные хосты, то можно посмотреть в сторону настройки FTP или NFS:
FTP - вариант через настройку возможности подключения к серверу по протоколу FTP. На 1 сервере нужно будет настроить FTP-сервер для возможности получения доступа к его файлам (пример настройки на Ubuntu). А на 2 сервере боту нужно будет дописать функции доступа к 1 серверу, например, через ftplib (небольшой гайд).
NFS - вариант через связывание папок 2-х серверов в единое пространство. Проще говоря - папка будет единой и для 1, и для 2 сервера. Как 1 сервер добавит файл в NFS-папку, то он тут же появится и у 2 сервера (пример настройки на Ubuntu). Главное будет организовать работу ботов так, чтобы они одновременно не изменяли один и тот же файл (как вариант - 2 сервер копирует к себе файл и уже у себя делает с ним что хочет).
С точки зрения "где хостить":
Если выбираете FTP, то можно хостить где угодно, так как FTP можно открыть и для доступа по внешнему IP - второй сервер сможет подключаться из любой другой сети.
Если выбираете NFS или FTP в безопасном варианте - то нужно хостить у поставщика, который позволит Вам настроить локальную сеть между Вашими машинами. Вот первый попавшийся пример. Скорее всего это более предпочтительный вариант, так как открывать внешний доступ к файлам сервера - это более рискованный вариант. Организовав работу между 2 машинами в локальной сети, Вы не делаете лишнего доступа к своим серверам, которым кто-то может попытаться воспользоваться.
Один из вариантов, это написать обоих ботов в одной программе, то есть чтобы оба бота были в одном файле. Эту программу можно захостить где угодно и все будет работать. Второй способ подойдет если вы хостите сервер на личном сервере или VDS, тогда вы можете запустить двух ботов на одном сервере и обоим прописать четкий путь до txt файла. Третий самый сложный, вы можете воспользоваться каким либо сервисом, который позволяет хостить у себя файлы и получать к ним доступ через API, как например google drive