Portal - 一款现代文件传输实用程序🌌✨
门户网站
门户网站
...是一个与平台无关的命令行文件传输实用程序,用于将文件从任何计算机发送到另一台计算机。
现在是 2023 年,ChatGPT 正在占领世界,然而,互相发送文件仍然非常烦人。
您有多少次尝试通过 Messenger、WhatsApp 或 Discord 向朋友发送文件,却发现无法发送文件夹、文件或总共.zip
无法发送少量文件?25MB
所以...你转到 Google Drive,但随后你必须摆弄链接权限,如果你要上传大文件,则必须等待它完全上传到 Google Drive,然后你的朋友才能开始下载它。哎呀。
作为开发者,您知道发送文件并不难。我们也一样,但对目前的现状感到厌倦。因此,我们创建了Portal,一个命令行实用程序,可以帮助您快速轻松地发送文件。
安装
在 GitHub 上查看安装选项(curl、brew,等等)!
喜欢的话记得点个⭐哦 <3
Portal 是一款快速简便的命令行文件传输实用程序,可以从任何计算机传输到另一台计算机🌌✨
门户网站

命令行文件传输实用程序,用于将文件从任何计算机发送到另一台计算机

安装
在 macOS/Linux 上,如果您使用Homebrew
brew install portal
在 Windows 上,如果您使用Scoop
scoop install portal
在 Windows 上,如果您使用WinGet
winget install SpatiumPortae.portal
在 Arch Linux(AUR)上
yay -S portal-bin
在任何平台上,您都可以手动获取最新版本,或者简单地运行
curl -sL portal.spatiumportae.com | bash
或者
wget -qO - portal.spatiumportae.com | bash
工作原理
发送文件和文件夹
发送文件:
portal send <file1> <file2> <folder1> <folder2> ...
应用程序将以 格式输出一个临时密码1-inertia-elliptical-celestial
。
发送方将通过某个安全通道将此密码传达给接收方。
接收文件和文件夹
要接收这些文件:
portal receive 1-intertia-elliptical-celestial
两个客户端将通过中继服务器建立连接……
工作原理
发送文件和文件夹
发送文件:
portal send <file1> <file2> <folder1> <folder2> ...
应用程序将以格式输出临时密码
1-inertia-elliptical-celestial
。
发送者将通过某个安全通道将此密码传达给接收者。
接收文件和文件夹
要接收这些文件:
portal receive 1-intertia-elliptical-celestial
两个客户端将通过中继服务器建立连接。然后,文件传输将根据实际情况,通过直接连接或中继连接开始。
它是什么样子的✨
发送者(顶部)向接收者(底部)发送一个文件夹和三个文件。
在这种情况下,正如您在事件日志中看到的,传输是通过直接传输进行的。这意味着文件直接从一个客户端发送到另一个客户端,不涉及任何中间人。
事实上,这些计算机位于同一个本地网络中,并且portal
能够识别这一点。
演示

特征
portal
提供:
- 使用PAKE2进行端到端加密
- 如果可能的话直接传输文件(例如发送者和接收者在同一个本地网络中)
- 如果发送者和接收者无法直接连接,则回退到中继服务器
- 并行 gzip 压缩文件,实现更快、更高效的传输
- 托管您自己的中继(如果您计划发送大量数据,我们将不胜感激!)
- 可配置性和 Shell 补全
- 等待文件时,闪亮的用户界面⭐✨ 让你眼前一亮
竣工
portal
TAB为以下壳层提供广泛的完井服务:
要查看您的 shell 和平台的安装说明,请运行:
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
旗帜
Receiver
Relay
Sender
和Receiver
-r/--relay
:中继服务器的地址(:8080
,,myrelay.io:1234
...)
-s/--tui-style
:tui 的样式(rich
| raw
)
Sender
,Receiver
和Relay
-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
服务器日志输出为。超级推荐通过jqJSON
运行它!
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"
}
维护者
致谢
nhooyr/websocket、shollz/pake、charmbracelet/bubbles、charmbracelet/bubbletea、charmbracelet/lipgloss、muesli/reflow、klauspost/pgzip等等。
DigitalOcean <3
特别感谢我们的赞助商DigitalOcean。
可供所有人使用的公共中继由 DigitalOcean 赞助。
鏂囩珷鏉ユ簮锛�https://dev.to/zinokader/portal-a-modern-file-transfer-utility-4154