☁️ Облако → Telegram

Telegram

Выдаёт @BotFather в Telegram (команда /newbot). От имени этого бота уходят уведомления, поэтому бота нужно добавить в каждый чат-получатель, а в канал — администратором с правом публиковать. «Проверить» спрашивает у Telegram, какому боту принадлежит токен, ничего не отправляя.

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

После сохранения бот спрашивает у Telegram про каждый чат-получатель, доступен ли он, и пишет результат в лог. Ловит типичную ошибку «бота не добавили в чат» сразу, а не при первом изменении в папке. Номер темы так проверить нельзя.

Ссылки

Каждая строка — одна публичная папка в облаке и чаты, куда слать её изменения. Нажмите на строку, чтобы развернуть настройки; галочка слева включает и выключает проверку. В строке — название Группы, облако, имя папки (после первого обхода), число получателей, объектов в базовой линии и время последнего успешного обхода. Первая проверка новой ссылки тихая: бот только запоминает содержимое, уведомления идут со второй.

Google не отдаёт содержимое папок без ключа API — даже открытых «всем, у кого есть ссылка». Ключ бесплатный и ничего не «открывает»: он даёт доступ ровно к тому, что и так доступно по ссылке. Как получить: console.cloud.google.com → создать проект → «APIs и сервисы» → «Библиотека» → включить Google Drive API → «Учётные данные» → «Создать учётные данные» → «Ключ API». В настройках ключа можно ограничить его только Google Drive API. Для Cloud Mail.ru ничего не нужно.

Расписание

Как часто бот обходит все ссылки. Проверки привязаны к стенным часам: 15 → :00, :15, :30, :45 — поэтому предлагаются только делители часа, и редеплой не сдвигает расписание. Чаще — быстрее уведомление, но больше запросов к облаку; при большом числе ссылок убедитесь, что обход укладывается в интервал (расчёт — в «Лимитах обхода»).

К каким местным часам привязано расписание, например Europe/Moscow. Для интервалов, делящих час, разницы почти нет — можно оставить UTC. Времена на этой странице показываются в часовом поясе браузера.

Лимиты обхода

Бот не читает папку одним запросом: каждая подпапка — отдельный запрос к облаку, большая папка — несколько страниц. Лимиты защищают от бесконечного обхода и от блокировки за частые запросы. Упёрлись в лимит — обход прерывается, необойдённые папки считаются неизвестными (ложных «удалено» не будет). Но в следующем цикле обход начинается с начала, и если лимита не хватает постоянно, одни и те же дальние папки не проверяются никогда — тогда поднимите лимиты или уменьшите глубину. Пустое поле — значение по умолчанию (оно показано серым).

Сколько уровней подпапок просматривать. 1 — только содержимое самой папки, вложенные папки видны, но их содержимое не проверяется. Каждый уровень — новые запросы. 8 хватает почти всем.

Предохранитель для одной ссылки. Нужно примерно столько, сколько в ней папок (плюс страницы больших папок). Не хватает — обход этой ссылки обрывается, дальние папки остаются непроверенными. Для отдельной ссылки переопределяется в её «Дополнительно».

Общий бюджет всех ссылок за одну проверку. Тратится по порядку списка, и последним ссылкам может не достаться ничего. Должен быть не меньше суммы папок по всем ссылкам — см. расчёт выше. Заодно ограничивает длительность цикла.

Аварийный предел числа файлов и папок в одной ссылке — защита памяти и размера файла состояния. При достижении обход прерывается. Обычно трогать не нужно.

Сколько объектов облако отдаёт за один запрос (Mail.ru — обычно до 500, Google Диск — до 1000). Папка с большим числом объектов читается несколькими страницами, каждая — отдельный запрос.

Предел страниц для одной папки. Страниц × элементов на страницу = максимум объектов в одной папке (20 × 500 = 10 000). Больше — хвост списка не читается и папка считается обойдённой неполностью.

Минимальная пауза между двумя запросами к облаку. Защита от блокировки за частые запросы (ошибка 429). Меньше — быстрее, но рискованнее. Она же определяет, сколько запросов успевает уложиться в таймаут цикла.

Сколько ждать ответа облака на один запрос. Не ответило — попытка повторяется (до трёх раз), затем папка считается необойдённой в этом цикле.

Дополнительно

Редко нужные настройки. Пустое поле — значение по умолчанию (показано серым); «по интервалу» значит, что умолчание вычисляется из интервала проверки.

Максимум объектов в разделах «Добавлено», «Изменено», «Удалено» одного уведомления; остальное сворачивается в «… и ещё N». Это главная защита от лавины строк, когда в папку залили сотни файлов. Длинное сообщение режется на части по лимиту Telegram.

Что писать про новую или удалённую папку. 0 — перечислять её содержимое подробно, каждый файл и подпапку отдельной строкой (в пределах «строк в секции»). N — папку, в которой N и больше объектов, показывать одной строкой «📁 Папка (+N объектов, свёрнуто)» без содержимого; меньшие — подробно. Например, 100: фотоотчёт из 20 снимков придёт списком, а залитый архив из 500 файлов — одной строкой.

Максимальная длительность одной проверки всех ссылок. Не уложились — цикл прерывается, состояние не сохраняется и в следующий раз всё начинается заново. При большом числе ссылок должен быть не меньше расчётного времени обхода (см. «Лимиты обхода») и не больше интервала проверки.

После перезапуска контейнера бот сразу запускает проверку, если последняя успешная была дольше этого срока назад (по умолчанию — один интервал). Так после долгого простоя изменения приходят сразу, а обычный редеплой расписание не сбивает.

Через сколько секунд без успешной проверки проба /readyz начинает отвечать ошибкой, и Coolify показывает контейнер как unhealthy (и может его перезапустить). По умолчанию — три интервала, но не меньше часа. Если лежит само облако, перезапуск не поможет — не ставьте слишком мало.

Подробность лога контейнера: DEBUG — каждый шаг, INFO — обычный режим (что обошли, что отправили), WARNING — только предупреждения и ошибки.

Менять не нужно. Пригодится только для тестов с поддельным сервером или при доступе к облаку через прокси.

Ключ доступа к этой странице

Пароль от этой страницы. Если он задан переменной ACCESS_KEY в Coolify, менять его нужно там — иначе после редеплоя снова заработает старый. После смены остальные открытые сеансы придётся перелогинить.

Файл настроек: . Резервная копия тома данных сохраняет и настройки, и базовую линию.