Поиск по переписке
«Скинь ту картинку, которую я присылал в мае». Листаю чат сорок минут. Не нахожу.
Telegram-бот · Google Drive и Яндекс.Диск
Один /connect в начале, дальше только пересылка. Документы, фото, видео,
аудио, голосовые, кружки. Альбом — один ответ со всеми ссылками сразу, а не десять сообщений подряд.
Бесплатно, без регистрации и без карты.
/connect — Google Drive или Яндекс.Диск, можно оба
Ситуация
Шесть ситуаций, в которых файл формально есть, а взять его неоткуда.
Поиск по переписке
«Скинь ту картинку, которую я присылал в мае». Листаю чат сорок минут. Не нахожу.
Хранилище заполнено
Снять надо прямо сейчас, места нет. Удаляю наугад и заранее знаю, что удалю нужное.
Пришло мыло
Отправила фото в чат — прилетело сжатое. Исходник я стёрла с телефона неделю назад.
По третьему кругу
«Перешлите ещё раз, у нас не сохранилось». Один и тот же акт, третий раз за неделю.
Ссылка устарела
Обменник держит файл неделю. Клиент открывает ссылку на десятый день. Собираю архив заново.
Семь экранов
Скачать, открыть Диск, найти папку, загрузить, поделиться, выставить права, скопировать. Ради одной ссылки.
Всё это чинится одним пересланным сообщением
Порядок действий
Команда /connect — и вы выбираете, куда складывать: Яндекс.Диск,
Google Drive или оба сразу.
Аккаунт ваш. Бот — руки.
Логин и пароль вы вводите на странице Google или Яндекса — бот получает только ключ доступа.
Google выдаёт режим drive.file: бот работает только с тем, что сам создал.
Google покажет предупреждение «приложение не проверено» — так он помечает все сервисы, которые не прошли его проверку. Нажмите «Дополнительные настройки» → «Перейти на lnk2drv.com». Права всё те же: только своя папка.
Документ, фото, видео, голосовое, кружок, альбом — ссылка приходит ответом в тот же чат.
В /my у каждой загрузки есть «Удалить»: файл уходит из облака,
ссылка перестаёт открываться.
Не «скрывает ссылку», а удаляет файл. Проверьте в своём Диске.
Шаги 1–2 — один раз, около 40 секунд. Шаг 3 — каждый раз, столько, сколько идёт загрузка файла.
Он лежит в вашем Google Drive или Яндекс.Диске, в папке, которую бот сам создал. У нас остаётся зашифрованный ключ доступа и строка в журнале — ни диска, ни квоты, ни копии.
файлов на нашем сервере после загрузки. Байты идут Telegram → сервер → ваше облако и сразу удаляются.
облака на выбор, можно подключить оба и переключаться одной кнопкой.
действий на одну ссылку вместо семи: скачать, открыть Диск, найти папку, загрузить, поделиться, выставить права, скопировать.
Восемь символов перед именем — чтобы файлы с одинаковыми названиями не затирали
друг друга. Режим доступа drive.file: приложение работает только с файлами, которые само
создало. Остальной диск для бота не существует — границу держит Google, а не наша совесть.
Про то, чего он не умеет, написано ниже — отдельным блоком, чтобы не искать.
Личное кладёте на Яндекс.Диск, рабочее — на Google Drive, переключаетесь одной кнопкой.
Не нужно открывать Диск, искать папку и выставлять права: ссылка приходит ответом на то же сообщение.
Telegram отправляет фото пачками по десять. Бот дожидается всю пачку и отвечает одним сообщением со всеми ссылками, а не десятью подряд.
Тот же файл во второй раз вернётся прежней ссылкой и не займёт на диске ни байта.
Документы, фото, видео, аудио, голосовые, кружки, гифки — и пересланное из другого чата тоже.
Кнопка «Удалить» стирает файл из облака: ссылка перестаёт работать сразу и у всех, кому вы её дали.
/my показывает десять последних загрузок с именем и размером, у каждой — кнопка «Удалить».
В корне появляется одна папка Lnk2Drv — всё складывается в неё, больше нигде ничего не создаётся.
Собеседник удалил сообщение, кэш почистился, канал снесли — файл всё равно лежит в вашем облаке.
Публичный Telegram отдаёт ботам максимум 20 МБ. На инстансе с локальным Bot API — до 2 ГБ.
20 МБ — предел Telegram Bot API, не наш. Обойти его кодом нельзя, и мы не будем делать вид, что можно.
Чтобы вы не выясняли это на третьем файле.
Перешлёте то же сообщение второй раз — бот узнает файл по идентификатору, который выдаёт Telegram, и вернёт прежнюю ссылку вместо новой загрузки. Ниже та же идея на вашем файле: одинаковое содержимое даёт одинаковый отпечаток.
Файл никуда не уходит: отпечаток SHA-256 считает ваш браузер, на сервер не отправляется ни байта. Отключите сеть и попробуйте — всё сработает. Сам бот сверяет не содержимое, а идентификатор, который выдаёт файлу Telegram: пересланный повторно файл узнаётся так же.
Проверка на своём файле
Перетащите файл сюда
или нажмите, чтобы выбрать — ничего не загрузится
Отпечаток считается на вашей стороне, WebCrypto
Каждый из трёх остальных способов чем-то хорош — и каждый ломается в своём месте.
Таблица листается вбок →
| Свойство | Lnk2Drv | «Избранное» в чате | Файлообменник | Приложение Диска |
|---|---|---|---|---|
| Где лежит файл | В вашем облаке | На серверах мессенджера | У сервиса-посредника | В вашем облаке |
| Сколько живёт ссылка | Пока не удалите сами | Ссылки нет, только пересылка | Обычно 7 дней | Пока не удалите сами |
| Действий на одну ссылку | 1 — пересылка | — | 4–5 | 7 |
| Можно ли отозвать доступ | Да, одной кнопкой | Нет, файл уже у собеседника | Зависит от сервиса | Да, вручную в Диске |
| Повторная отправка | Та же ссылка, места не занимает | Новая копия | Новая загрузка | Дубль в папке |
| Размер файла | До 20 МБ, на своём сервере до 2 ГБ | До 2 ГБ | Гигабайты | Сколько есть места |
| Работает с телефона в дороге | Да, не выходя из чата | Да | Через браузер, с загрузкой | Да, но семь экранов |
Когда бот не нужен: файл нужен один раз и прямо сейчас — проще отправить его в чат как есть.
«У меня двенадцать клиентов, и файлы всех двенадцати лежат в одном «Избранном» вперемешку».
Фото и документы от клиента уходят боту прямо из чата проекта и ложатся в облако
сразу со ссылкой. Через два месяца, когда попросят «ту картинку из мая», ссылка находится
в /my, а не сорока минутами листания переписки.
«В переписке сорок версий договора, а последнюю не найти».
Скан или фото чека уходит в рабочий Диск в момент получения. Контрагенту отдаётся ссылка на один документ, а не доступ к папке, где лежат документы всех клиентов. Через год запрос из налоговой закрывается за десять секунд.
«Отправила одно и то же аудио двадцати ученикам по одному».
Материал заливается один раз, ссылка вставляется в рассылку и в описание урока. Ученик, потерявший файл, открывает ту же ссылку. Курс закончился — ссылка удаляется, и доступ пропадает сразу у всех.
«Клиент не хочет нигде регистрироваться, а превью нужно вчера».
Макет на согласование уходит боту вечером с телефона. Клиент получает обычную ссылку без регистрации и без срока годности — и открывает её через полгода, потому что файл лежит в вашем облаке. Тяжёлые исходники по-прежнему едут через Диск: публичный Bot API отдаёт боту не больше 20 МБ.
«Сотрудник ушёл, а половина файлов проекта осталась в его переписке».
Этого пока нет: командные папки и журнал в работе
Сегодня каждый сотрудник подключает своё облако и складывает файлы туда. Общая папка команды, роли и журнал «кто что залил» появятся позже — пока это дорожная карта, а не рабочий сценарий.
так выглядит ответ бота
✔ договор-аренды-финал.pdf · 2,4 МБ
disk.yandex.ru/i/8Kq2wRt
ОткрытьУдалить
♻ договор-аренды-финал.pdf уже в облаке
disk.yandex.ru/i/8Kq2wRt
Доступ
01
Google выдаёт доступ в режиме drive.file: приложение работает только
с файлами, которые само создало. Ваши старые документы и папки для бота не существуют.
02
Вход происходит на странице Google или Яндекса, в их форме. Боту достаётся только ключ доступа — пароля он не видит, и хранить его негде.
03
Ключи доступа шифруются в базе, а ключ шифрования хранится отдельно от неё. Утёкшая копия базы без него — набор байтов, из которого ваше облако не открыть.
04
/accounts → «Отключить»: ключ стирается у нас и одновременно уходит
запрос на его отзыв в Google или Яндекс. Если провайдер в этот момент недоступен, ключ
у нас всё равно стёрт — а отозвать доступ наверняка можно самому: в настройках
Google или в Яндекс ID.
05
Если не хотите доверять чужому серверу, поднимите свою копию: тогда ключи, база и транзит файлов остаются у вас, а лимит вырастает до 2 ГБ. Понадобится сервер с доменом, свои OAuth-приложения в Google и Яндексе и полчаса по инструкции. Исходный код отдаём по запросу — напишите боту.
Подключить своё облако Отключается там же, в один тап
Три честные оговорки
Его API так не умеет: мы запрашиваем доступ к диску и работаем строго в папке
/Lnk2Drv. Здесь границу держит наш код, а не Яндекс. Нужна гарантия
провайдера — подключайте Google Drive.
Байты идут Telegram → наш сервер → ваше облако и сразу после загрузки удаляются с сервера. Промежуточная копия существует секунды.
Кто получил ссылку, тот откроет файл: пароля и срока жизни пока нет, они в планах. Выключатель есть — удалить файл и оборвать доступ можно в любой момент.
Сегодня бот живёт в Telegram и кладёт файлы в два облака. Сценарий один и тот же, поэтому список пополняется без переучивания: пересылка остаётся пересылкой.
Дорожная карта
Три направления, в которых бот перестаёт быть загрузчиком. Ничего из этого пока не работает — поэтому и вынесено в отдельный блок, а не подмешано к возможностям.
Направление 01
Срок жизни, пароль, лимит скачиваний и статистика переходов. Видно, открыл ли клиент договор — и можно закрыть доступ, не удаляя файл.
Направление 02
Расшифровка голосовых и кружков, распознавание текста на сканах, поиск по своей библиотеке прямо в чате. Файл становится находимым по содержимому.
Направление 03
Slack, MAX, Discord, Teams и облака за пределами двух: Dropbox, OneDrive, S3, WebDAV. Включая корпоративное хранилище в своём периметре.
Вопросы
Не нашли своего вопроса — напишите боту: вопросы читаем и отвечаем.
Нет. В Google Drive бот работает в режиме drive.file и физически
не может открыть ничего, кроме того, что сам туда положил. На Яндекс.Диске такого
режима нет, поэтому там границу держит код бота: он работает только в папке
/Lnk2Drv. Содержимое файлов мы не смотрим и не индексируем.
Столько Telegram отдаёт ботам через публичный Bot API. Обойти это кодом невозможно: файл просто не выдаётся. Лимит снимается локальным Bot API server — тогда предел 2 ГБ. Если вы поднимаете свою копию бота, это вопрос одной переменной в настройках.
Файлы останутся у вас: они лежат в вашем облаке и принадлежат вам. Бот потеряет возможность что-либо туда класть и оттуда удалять. Ссылки, которые вы уже раздали, продолжат работать, пока вы сами не удалите файлы в своём Диске.
Зашифрованный ключ доступа к вашему облаку, ваш Telegram ID и строки истории:
имя файла, размер, дата и ссылка — чтобы работали /my и удаление.
Самих файлов нет: они удаляются с сервера сразу после загрузки в облако.
Да, ссылка работает у любого, кто её получил — так устроен доступ по ссылке
в Google Drive и на Яндекс.Диске. Пароля и срока жизни пока нет, они в планах.
Выключатель есть: удалить файл из /my — и ссылка перестаёт
открываться у всех сразу.
Да, место расходуется ваше — в этом и смысл: у сервиса нет своего хранилища, которое однажды закончится или подорожает. Один и тот же файл повторно не грузится: бот узнаёт его и возвращает прежнюю ссылку.
Да. Оба подключаются в /connect, активное облако переключается
в /accounts одной кнопкой. Личное можно складывать на Яндекс.Диск,
рабочее — на Google Drive.
Файлы и ссылки останутся: они в вашем облаке и не зависят от нас. Перестанет работать только сам бот. Свою копию можно поднять на своём сервере — исходный код отдаём по запросу.
Сейчас бесплатно. Ограничения только технические: файл до 20 МБ, до 200 файлов и до 5 ГБ в сутки на человека — чтобы один пользователь не занял очередь целиком. Место расходуется ваше, поэтому нам дорого обходится только трафик. Платными позже станут управляемые ссылки, расшифровка голосовых и командные папки — то, что стоит денег на нашей стороне.
Сегодня работает только Telegram. Slack, MAX, Discord и Teams — в планах: сценарий там тот же, меняется только транспорт. Напишите боту, в каком мессенджере вам нужнее: это влияет на порядок.
Начало
Бесплатно, без регистрации и без карты. Подключение занимает около 40 секунд. Отключить облако можно там же одной кнопкой: ключ стирается у нас и отзывается у провайдера.