Перекидывая файлы

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

Как это выглядит в работе. Видите пароли, IP-адреса или ключи?  

На ролике выше показан перенос файла в обе стороны между двумя компьютерами, один на Windows, другой на Linux, причем обе машины подключены через публичные сети — без VPN и еще каких-либо туннелей. Расстояние между компьютерами 6500км, прямого доступа между ними разумеется нет.

Зачем и для чего

Для того самого банального перекидывания файлов между любыми компьютерами, которое превратилось в 21м веке из простой задачи в какую-то дичь.

Представьте что есть команда, основная часть которой работает удаленно, есть арендованные сервера — разумеется тоже удаленные и все они постоянно обмениваются файлами.

Разработчики перекидывают исходники, тестировщики и админы — сборки и релизы, менеджеры и бухгалтерия — документы*

*помимо мемов и порнографии.

Как это чаще всего выглядит?

Мессенджеры, почта и файлообменники, в продвинутых случаях — «общие сетевые папки» и scp/rsync

Но scp и rsync это больше про сервера разумеется.

В качестве избавления от всего этого цирка и была сделана наша Телепорта.

Телепорта

Телепорта — не очередной синхронизатор файлов как Dropbox или Syncthing и не «каталог по сети» а-ля «Общие папки Windows» или NFS. Еще это не P2P-система как AirDrop и строго говоря это даже не совсем клиент-сервер.

Представьте, что из Telegram взяли работу с файлами и перенесли в автономное приложение. Затем убрали весь интерфейс, сведя взаимодействие с пользователем к закидыванию отправляемых файлов в каталог*

*Конечно фактически это не так, но позволяет понять как работает Телепорта.

Вот так выглядит схема работы:

Схема работы Телепорты, стоит сразу добавить что используется исключительно HTTP-протокол.
Схема работы Телепорты, стоит сразу добавить что используется исключительно HTTP-протокол.

Релеи и порталы

Телепорта представляет собой одно маленькое приложение с двумя режимами работы: релей и портал.

Портал — клиентская часть, которая мониторит папки отправки и подключается к релею.

Релей — серверная часть, но служит только для пересылки файлов.

Каждый портал имеет свою пару ключей «публичный-приватный», которые используются для шифрования отправляемых через релей файлов, расшифровать может только принимающая сторона.

Поэтому релей спокойно поднимается на любом хостинге без риска утечки и проблем с безопасностью*

*для нормальных людей и обычных компаний.

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

Все настолько просто, потому что релей умеет отдавать готовую к подключению клиентскую сборку:

Автоматическое развертывание в действии

Достаточно открыть ссылку с клиентского компьютера, скачать архив и запустить — запущенная копия Телепорты сразу подключится к тому релеею, с которого ее скачали.

Более простых и быстрых способов развертывания не существует*

*мы не видели.

Разумеется эту опцию можно отключить и раскидывать копии Телепорты по клиентским компьютерам вручную.

Вездеход

Еще одной важной особенностью Телепорты является ее тотальная кроссплатформенность:

одна и та же сборка работает на Windows, Mac, Linux и всех остальных ОС*

*где есть Java 1.8 и выше.

В качестве демонстрации мы запустили Телепорту на.. Windows 98:

На видео был переброшен стандартный "Блокнот" и немедленно запущен на другой системе.

Передача каталогов

Помимо файлов, Телепорта позволяет переносить между компьютерами еще и целые каталоги:

Так выглядит перенос каталога с исходниками проекта, каждый день так делаем.

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

Телепорта — единственный* проект, в котором это гарантированно работает, потому что для передачи каталога происходит его архивация и передача в упакованном виде.

*Из известных нам.

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

Перенос буфера обмена

Как там было у Джобса — «one more thing»:

CTRL-C и CTRL-V по сети, через интернет.

Второй ключевой фичей Телепорты является передача буфера обмена между компьютерами:

На одном компьютере нажимается CTRL-C, на другом — CTRL-V и.. все, появляется скопированный текст.

На данный момент эта опция является экспериментальной и поддерживает только текстовые данные — мы ее активно тестируем.

Перенос буфера обмена между Линуксом и Windows 98, сама виртуальная машина такое не поддерживает для столь старой ОС.

Используется чаще всего для безопасного перекидывания паролей, ключей, API-токенов и подобного, еще разработчики перекидывают куски исходного кода таким способом.

Где брать

Как исходный код так и готовую сборку можно взять на странице проекта в Github.

В большинстве случаев будет достаточно скачать файл teleporta.cmd и запустить, по-умолчанию запустится релей, готовый к подключению:

Перекидывая файлы

Длинную ссылку нужно будет открыть на другом компьютере, запустится скачивание архива с копией Телепорты. После запуска она сразу подключится к релею и можно будет перекидывать файлы:

Перекидывая файлы

Телепорта использует Java для работы*

Пойдет любая версия с 1.8 и выше, будет работать как JRE так и JDK.

Для Windows старше 10й, Телепорта попробует самостоятельно скачать JRE если не найдет установленную.

Для всех остальных ОС и старых версий Windows необходимо установить Java вручную.

На данный момент есть подтверждения работы Телепорты на:

  • Windows 98, XP, Vista, 2003, 7, 8, 10,11
  • MacOS 10 - 15
  • Linux
  • FreeBSD, OpenBSD, NetBSD
  • Oracle Solaris, OpenNexenta

Также релей был успешно запущен на Zyxel NAS 542.

Скорее всего будет работать в любых окружениях где доступна Java 1.8 и выше.

Обратная связь

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

Выкладывание в публичный доступ немедленно подсветило множество проблем, которые мы просто не могли предусмотреть.

Так что обычному пользователю стоит считать наш проект новым и быть готовым к возможным недоработкам.

Тем не менее:

Телепорта активно развивается и остро нуждается в обратной связи от конечных пользователей.

Мы с радостью поможем с запуском и решением всех сопутствующих проблем.

Писать можно мне на почту, в телеграм или на странице проекта в Github.

Добавлю, что тут описан лишь ключевой функционал Телепорты, все остальные, более сложные технические фичи вроде «приватного релея», требующего публичный ключ для подключения или ручной блокировки отправки описаны в статье на Хабре.

0x08 Software

Мы небольшая команда ветеранов ИТ‑индустрии, создаем и дорабатываем самое разнообразное программное обеспечение, наш софт автоматизирует бизнес‑процессы на трех континентах, в самых разных отраслях и условиях.

Оживляем давно умершее, чиним никогда не работавшее и создаем невозможное — затем рассказываем об этом в своих статьях.

11
9 комментариев

Круто, очень круто! Приходите размещаться на https://productradar.ru

1

Дмитрий, чето оно как-то зависло все у вас: https://productradar.ru/user/alex3-145/pending/

Хреново работаете, мы успели уже на Product Hunt показаться и на Hacker News:
https://www.producthunt.com/posts/teleporta
https://news.ycombinator.com/submitted?id=alex0x08

18 звезд на Гитхабе меньше чем за две недели.
И будет еще.

Спасибо за наводку, обязательно там тоже будет публикация но позже - как смонтируем вертикальные ролики )
А сами не хотите попробовать Телепорту в работе?