Интеграция
Google Drive и файлы, которые принадлежат не тому, кому надо
Интеграция с Google Drive раскладывает документы, собранные через Telegram-бота, по той структуре папок, которой ваша команда уже пользуется. Ловушка здесь одна — владение: файлы, созданные сервисным аккаунтом в «Моём диске», принадлежат этому сервисному аккаунту, расходуют его квоту и не видны больше никому.
Google Drive — интеграция: доступ, лимиты и доступность
- Модель авторизации
- OAuth 2.0
- Ловушка владения
- Файлы сервисного аккаунта в «Моём диске» расходуют его собственную квоту
- Доступность в Заливе
- Общим дискам нужен Workspace; личные аккаунты упираются в ограничения владения
- Поток данных
- 5 узлов, через воркер
As of 2025-10-01, Telegram Bot API 13.4
Зачем нужна эта интеграция
Сбор документов через бота окупается только тогда, когда файлы оказываются там, куда сотрудники и так смотрят. Безупречно разложенный архив в системе, которую никто не открывает, — это просто более медленный способ попросить прислать всё почтой. Поэтому интеграцию оценивают по одному признаку: лежит ли в папке дела, которую помощник юриста открывает в понедельник, то, что клиент прислал в пятницу.
Сбой, который повторяется из проекта в проект, — это владение, и он специфичен именно для того, как устроен Drive. Сервисный аккаунт, загружающий файлы в «Мой диск», становится их владельцем. У него собственная небольшая квота хранилища, поэтому загрузки начинают падать, как только она заполнится, а сами файлы не видны вашим сотрудникам, пока каждый из них не будет расшарен отдельно. На тестах с десятком документов всё выглядит рабочим, а деградирует потом так, что со стороны похоже на аварию сервиса.
Правильный ответ — общие диски, где содержимым владеет сам диск, а не тот, кто загрузил файл. Сервисный аккаунт добавляется в участники, файлы наследуют права диска, а занятое место считается организации, а не служебному роботу. Разница в настройке занимает пять минут, и это разница между интеграцией, которая работает год, и интеграцией, которая перестаёт работать на втором месяце.
Как на самом деле движутся данные
Сервисный аккаунт, добавленный участником нужного общего диска, с ключом, который хранится как секрет воркера. Делегирование в пределах домена доступно там, где файлы обязаны создаваться от имени конкретного сотрудника, но для сбора документов схема с общим диском проще и не требует выдавать себя за кого-то из людей.
Модель доступа: OAuth 2.0
Их лимиты и что они означают для вас
Файлы, созданные сервисным аккаунтом в «Моём диске», принадлежат ему и расходуют его собственную квоту.
Вместо этого используются общие диски, где содержимым владеет диск. Иначе загрузки перестают проходить, как только сервисный аккаунт заполнится, и всё это время никто не видит файлов.
Drive API применяет квоты на проект и на пользователя, измеряемые в окне 100 секунд.
Пачка документов, пришедшая одновременно, легко выбирает короткое окно. Загрузки ставятся в очередь и повторяются с нарастающей паузой, а не отправляются по мере поступления файлов.
Загрузки крупнее примерно 5 МБ должны идти по возобновляемому протоколу.
Многостраничный скан PDF регулярно переваливает за этот порог. Простая загрузка рвётся на нестабильном соединении там, где возобновляемая спокойно продолжается с места обрыва.
Имена папок не уникальны, а файлы адресуются по идентификатору.
Идентификаторы папок вычисляются один раз и сохраняются. Искать папку по имени при каждой загрузке и медленнее, и неверно в тот момент, когда два дела названы похоже.
Как это ломается и что происходит потом
Через несколько недель после запуска загрузки начинают падать с ошибкой хранилища.
Собственная квота сервисного аккаунта заполнилась, потому что файлы шли в «Мой диск». Схема с общим диском убирает этот сценарий целиком, а не поднимает потолок.
Сотрудники не видят файлов, про которые бот отчитался, что подшил их.
Та же проблема владения, только с другой стороны. Файлы на общем диске наследуют его права и видны без отдельного шага расшаривания каждого документа.
Сотрудник переименовал или перенёс папку.
Сохранённые идентификаторы папок переживают и то, и другое — это главный аргумент за адресацию по идентификатору, а не по пути. Интеграция на путях ломается в первый же раз, когда кто-то наводит порядок.
Крупная загрузка обрывается на плохом соединении.
Возобновляемая загрузка продолжается, а не начинается заново. Вместе с долговечной копией в R2 сорванная передача стоит времени, а не документа.
Доступность в ОАЭ и остальных странах Залива
Клиенты Google Workspace
Тот случай, под который всё и рассчитано. Общие диски требуют Workspace, и именно они делают эту интеграцию долговечной.
Личные аккаунты Google
Общих дисков нет, поэтому проблем с владением и квотой не избежать. Приемлемо для практикующего в одиночку и хрупко для компании.
Размещение данных
Файлы лежат в инфраструктуре Google. Там, где регулятор требует хранить документы клиентов внутри страны, это решение для юриста, а не для того, кто выбирает хранилище.
Сроки хранения
Политика хранения настраивается в Workspace, а не ботом. Бот подшивает документы; правила удаления остаются за вашими администраторами.
Когда эту интеграцию делать не нужно
- У вас нет Workspace и нельзя использовать общие диски. Тогда у проблем с владением и квотой нет чистого решения.
- Документы клиентов обязаны оставаться внутри страны. Это вопрос к юристу, а не настройка интеграции.
- Структуру папок никто не согласовал. Бот будет аккуратно и последовательно раскладывать файлы по структуре, которой никто не пользуется.
- Вам нужно управление документами, а не хранение. Drive хранит файлы; ведением дел с версиями он не занимается.
На чём это работает
| Компонент | Версия | Зачем |
|---|---|---|
| Cloudflare Workers | current | Авторизация сервисного аккаунта, очередь возобновляемых загрузок и разбор идентификаторов папок. |
| Cloudflare R2 | current | Долговечная копия, которая пишется до попытки загрузки в Drive. |
| Cloudflare D1 | current | Кэш идентификаторов папок, очередь загрузок и состояние подшивки по каждому делу. |
| Zod | 4.4 | Валидация ответов API и результатов загрузки. |
Вопросы, которые возникают при оценке
Почему загрузки начинают падать через пару недель?
Почти всегда потому, что файлы уходят в «Мой диск», где ими владеет сервисный аккаунт и где они расходуют его небольшую собственную квоту. Общие диски убирают этот сценарий целиком, а не поднимают потолок, и это разница в настройке, а не в коде.
Почему сотрудники не видят подшитые ботом файлы?
Та же проблема владения с другой стороны. Файлы, созданные сервисным аккаунтом в «Моём диске», видны только ему, пока каждый не расшарен явно; на общем диске они автоматически наследуют права самого диска.
Искать папки по имени или по идентификатору?
По идентификатору, вычисленному один раз и сохранённому. Имена папок не уникальны, а сотрудники переименовывают и переносят их, поэтому интеграция на путях ломается в первый же раз, когда кто-то наводит порядок, — а событие это совсем не редкое.
Что будет, если большой скан не загрузится?
Возобновляемая загрузка продолжится, а не начнётся заново, и долговечная копия к этому моменту уже записана до попытки отправки в Drive. Сорванная передача стоит времени, а не документа клиента.
Управляет ли бот сроками хранения?
Нет. Политика хранения настраивается в Workspace вашими администраторами. Бот подшивает документы и фиксирует, куда они легли; правила удаления он сознательно не решает.
Можно ли потом подключить к этому ИИ-ассистента?
Да, и это обычное продолжение — тот же общий диск становится корпусом. Возможным это делает именно аккуратная подшивка с самого начала: иначе всё упирается в отдельный проект по разбору накопившегося.
Что почитать дальше
Если команда работает в Dropbox, а не в Workspace, аналогом будет посмотреть интеграцию с Dropbox.
Организациям на Microsoft 365 стоит прочитать про интеграцию с SharePoint.
Это хранилище наполняет бот сбора документов.
Последовательно разложенный диск — обычный корпус, из которого отвечает ИИ-ассистент на базе знаний.