Портал: простой способ передачи больших файлов между компьютерами 🌌✨

Портал: простой способ передачи больших файлов между компьютерами 🌌✨

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 это распознает.

Демо

portal demo

Возможности

портал обеспечивает:

  • Сквозное шифрование с использованием 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.

:::информация Также опубликовано здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE