Портал: простой способ передачи больших файлов между компьютерами 🌌✨
24 марта 2023 г.Портал
...это независимая от платформы утилита передачи файлов из командной строки для отправки файлов с любого компьютера на другой.
На дворе 2023 год, и ChatGPT захватывает мир, но отправка файлов друг другу по-прежнему невероятно раздражает.
<цитата>Сколько раз вы пытались отправить файл другу через Messenger, WhatsApp или Discord только для того, чтобы узнать, что вы не можете отправить папку или файл .zip
, или более ничтожного 25MB
всего?
Итак... вы направляетесь на Google Диск, но затем вам нужно возиться с разрешениями на ссылку, и если вы загружаете большой файл, вам нужно дождаться его полной загрузки на Google Диск, прежде чем ваш друг сможет даже начать загрузку. Уууууух.
Как разработчик, вы знаете, что отправлять файлы не так уж сложно. Мы тоже, и нам надоело текущее положение вещей. Поэтому мы создали Portal, утилиту командной строки для быстрой и простой отправки файлов.
Установка
Посмотрите варианты установки (curl, brew, yay) на GitHub!
Поставьте ⭐, если вам понравилось ❤️
https://github.com/SpatiumPortae/portal?embedable=true
Как это работает
Отправка файлов и папок
Чтобы отправить файлы:
portal send <file1> <file2> <folder1> <folder2> ...
Приложение выдаст временный пароль в формате 1-inertia-elliptical-celestial
.
Отправитель сообщит этот пароль получателю по какому-либо защищенному каналу.
Получение файлов и папок
Чтобы получить эти файлы:
portal receive 1-intertia-elliptical-celestial
Два клиента установят соединение через сервер ретрансляции. Передача файла начнется с прямого или ретранслируемого соединения, в зависимости от того, что возможно.
Как это выглядит ✨
Отправитель (вверху) отправляет папку и три файла получателю (внизу).
В этом случае, как видно из журнала событий, передача осуществляется с помощью прямой передачи. Это означает, что файлы отправляются напрямую от одного клиента к другому, без участия посредников.
Так получилось, что эти компьютеры находятся в одной локальной сети, и portal
это распознает.
Демо
Возможности
портал
обеспечивает:
- Сквозное шифрование с использованием PAKE2
- Прямая передача файлов, если это возможно (например, отправитель и получатель находятся в одной локальной сети)
- Возврат к серверу ретрансляции, если отправитель и получатель не могут подключиться напрямую
- Параллельное сжатие файлов gzip для более быстрой и эффективной передачи.
- Размещение собственной ретрансляции (будем признательны, если вы планируете отправлять много данных!)
- Настраиваемость и завершение оболочки
- Блестящий пользовательский интерфейс ⭐✨ чтобы смотреть на него, пока вы ждете свои файлы
Завершения
portal
предоставляет обширные дополнения TAB для следующих оболочек:
баш
зш
рыба
powershell
Чтобы просмотреть инструкции по установке для вашей оболочки и платформы, выполните:
portal completion [bash|zsh|fish|powershell] --help
Совет!
Вы, вероятно, не совсем разобрали пароль, который Боб кричал через всю комнату.
Вы можете использовать TAB-завершение для автоматического заполнения паролей на принимающей стороне.
Нажимайте TAB при вводе частей пароля...
portal receive 42-relative-parsec-s...
...и portal
предложит возможные слова
$ portal receive 42-relative-parsec-s...
42-relative-parsec-supernova 42-relative-parsec-scatter 42-relative-parsec-solar 42-relative-parsec-spin 42-relative-parsec-static
42-relative-parsec-sigma 42-relative-parsec-solid 42-relative-parsec-star 42-relative-parsec-storm 42-relative-parsec-system
бум. сверхновая.
portal receive 42-relative-parsec-supernova
Флаги
Получатель
-y/--yes
: перезаписать существующие файлы без запросов[Y/n]
Ретрансляция
-p/--port
: порт для размещения сервера ретрансляции
Отправитель
и Получатель
-r/--relay
: адрес сервера ретрансляции (:8080
,myrelay.io:1234
, ...)-s/--tui-style
: стиль tui (богатый
|raw
)
Отправитель
, Получатель
и Ретранслятор
-h/--help
: выводить справочные сообщения для любой команды-v/--verbose
: записывать отладочную информацию в файл
Конфигурация
portal
помещает свой файл конфигурации в $HOME/.config/portal/config.yml
.
Как видно из расширения файла, конфигурация представляет собой простой файл YAML с описательными именами полей.
Конфигурация по умолчанию
relay: portal.spatiumportae.com
verbose: false
prompt_overwrite_files: true
relay_serve_port: 8080
tui_style: rich
Размещение собственного ретранслятора
Двоичный файл portal
поставляется со встроенным сервером ретрансляции.
Раскрутить собственное реле так же просто, как...
portal serve --port 1337
Вывод журнала сервера — JSON
. Суперрекомендуется запускать его через jq!
portal serve --port 1337 2>&1 | jq .
...
{
"level": "info",
"ts": "2023-02-28T02:57:45.310134+01:00",
"caller": "rendezvous/server.go:77",
"msg": "serving rendezvous server",
"version": "v1.2.1",
"address": ":1337"
}
Сопровождающие
Цифровой океан <3
Выражаем особую благодарность нашим спонсорам DigitalOcean. Публичный ретранслятор, доступный для всех, спонсируется DigitalOcean.
:::информация Также опубликовано здесь.
:::
Оригинал