Перекидывая файлы
На ролике выше показан перенос файла в обе стороны между двумя компьютерами, один на Windows, другой на Linux, причем обе машины подключены через публичные сети — без VPN и еще каких-либо туннелей. Расстояние между компьютерами 6500км, прямого доступа между ними разумеется нет.
Зачем и для чего
Для того самого банального перекидывания файлов между любыми компьютерами, которое превратилось в 21м веке из простой задачи в какую-то дичь.
Представьте что есть команда, основная часть которой работает удаленно, есть арендованные сервера — разумеется тоже удаленные и все они постоянно обмениваются файлами.
Разработчики перекидывают исходники, тестировщики и админы — сборки и релизы, менеджеры и бухгалтерия — документы*
Как это чаще всего выглядит?
Мессенджеры, почта и файлообменники, в продвинутых случаях — «общие сетевые папки» и scp/rsync
В качестве избавления от всего этого цирка и была сделана наша Телепорта.
Телепорта
Телепорта — не очередной синхронизатор файлов как Dropbox или Syncthing и не «каталог по сети» а-ля «Общие папки Windows» или NFS. Еще это не P2P-система как AirDrop и строго говоря это даже не совсем клиент-сервер.
Представьте, что из Telegram взяли работу с файлами и перенесли в автономное приложение. Затем убрали весь интерфейс, сведя взаимодействие с пользователем к закидыванию отправляемых файлов в каталог*
Вот так выглядит схема работы:
Релеи и порталы
Телепорта представляет собой одно маленькое приложение с двумя режимами работы: релей и портал.
Портал — клиентская часть, которая мониторит папки отправки и подключается к релею.
Релей — серверная часть, но служит только для пересылки файлов.
Каждый портал имеет свою пару ключей «публичный-приватный», которые используются для шифрования отправляемых через релей файлов, расшифровать может только принимающая сторона.
Поэтому релей спокойно поднимается на любом хостинге без риска утечки и проблем с безопасностью*
Также релей легко и просто запускается локально, что позволяет организовать обмен файлами в пределах локальной сети — без какой-либо настройки и развертывания.
Все настолько просто, потому что релей умеет отдавать готовую к подключению клиентскую сборку:
Достаточно открыть ссылку с клиентского компьютера, скачать архив и запустить — запущенная копия Телепорты сразу подключится к тому релеею, с которого ее скачали.
Более простых и быстрых способов развертывания не существует*
Разумеется эту опцию можно отключить и раскидывать копии Телепорты по клиентским компьютерам вручную.
Вездеход
Еще одной важной особенностью Телепорты является ее тотальная кроссплатформенность:
одна и та же сборка работает на Windows, Mac, Linux и всех остальных ОС*
В качестве демонстрации мы запустили Телепорту на.. Windows 98:
Передача каталогов
Помимо файлов, Телепорта позволяет переносить между компьютерами еще и целые каталоги:
Причем перенос осуществляется с гарантией сохранения внутренней структуры и без ограничений на вложенность.
Телепорта — единственный* проект, в котором это гарантированно работает, потому что для передачи каталога происходит его архивация и передача в упакованном виде.
Забудьте про проблемы с длинными именами и кодировками, через Телепорту спокойно проходит любая экзотика, появляясь на компьютере получателя ровно в том виде в каком было отправлено.
Перенос буфера обмена
Как там было у Джобса — «one more thing»:
Второй ключевой фичей Телепорты является передача буфера обмена между компьютерами:
На одном компьютере нажимается CTRL-C, на другом — CTRL-V и.. все, появляется скопированный текст.
На данный момент эта опция является экспериментальной и поддерживает только текстовые данные — мы ее активно тестируем.
Используется чаще всего для безопасного перекидывания паролей, ключей, API-токенов и подобного, еще разработчики перекидывают куски исходного кода таким способом.
Где брать
Как исходный код так и готовую сборку можно взять на странице проекта в Github.
В большинстве случаев будет достаточно скачать файл teleporta.cmd и запустить, по-умолчанию запустится релей, готовый к подключению:
Длинную ссылку нужно будет открыть на другом компьютере, запустится скачивание архива с копией Телепорты. После запуска она сразу подключится к релею и можно будет перекидывать файлы:
Телепорта использует Java для работы*
Для 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м году, все это время она была нашей внутренней разработкой и использовалась на очень ограниченном количестве компьютеров и окружений.
Выкладывание в публичный доступ немедленно подсветило множество проблем, которые мы просто не могли предусмотреть.
Так что обычному пользователю стоит считать наш проект новым и быть готовым к возможным недоработкам.
Тем не менее:
Телепорта активно развивается и остро нуждается в обратной связи от конечных пользователей.
Добавлю, что тут описан лишь ключевой функционал Телепорты, все остальные, более сложные технические фичи вроде «приватного релея», требующего публичный ключ для подключения или ручной блокировки отправки описаны в статье на Хабре.
0x08 Software
Мы небольшая команда ветеранов ИТ‑индустрии, создаем и дорабатываем самое разнообразное программное обеспечение, наш софт автоматизирует бизнес‑процессы на трех континентах, в самых разных отраслях и условиях.
Оживляем давно умершее, чиним никогда не работавшее и создаем невозможное — затем рассказываем об этом в своих статьях.