在一台电脑上传到云端,在另一台电脑取回
最后更新: 2026-09-01
有时两台电脑根本不会同时开着。你想今晚从工作笔记本丢一个文件,明天再从家里台式机取,中间没人等着保持在线连接。relayium up 和 relayium down 正是干这个的:up 在本地加密后上传到你的账号,down 之后在任意机器上取回并解密——无需点对点握手,也无需一台双方都能 ssh 进去的服务器。
这是 CLI 里主要会用到 Relayium 账号的部分,另一个是 send——它需要账号来生成配对码。其余功能的绑定是可选的:push/pull、daemon 直连、sync 都无需登录照常可用,receive 也一样。下载则完全不需要账号,有链接即可。
什么时候用它
按对端是否在线、以及两台机器如何互相触达来选模式:
- up / down(本指南)——两台机器从不同时在线。你现在上传,之后你(或另一台机器)再下载。走你的账号。
- send / receive——两端此刻都在线,想用一次性配对码做直接点对点传输。
- push / pull——你已经能 ssh 进对端机器。
- 需要 relayium login 的是 up 和 send——up 是为了把文件存到你的账号下,send 只在必须签发配对码时才需要(别人给了你码就不用)。down、receive、push/pull、daemon 直连、sync 都不需要账号。
开始之前
你需要准备
- 先装 CLI,这样 relayium 命令才存在。下面这行会把预编译好的二进制放到你的 PATH 上(macOS 和 Linux;Windows 请从发布页下载 .zip);relayium --version 可确认是否装好,relayium.com/cli 列出了所有安装方式。不装这一步,relayium login 只会报「command not found」。
- 有一个免费的 Relayium 账号。浏览器那一步是拿你的账号来批准这次登录,所以你得先有账号才能批准——先在 relayium.com 登录,没有就在那里注册一个。只有上传才需要账号;下载从不需要。
- 一个能把链接送到另一台机器的办法——备忘录、聊天窗口、密码管理器都行。任何拿到链接的人都能下载该文件,所以要像对待密码一样对待它。
第一次 up 之前有两件一次性的事——装好 CLI,以及有个账号。两样都齐了就往下跳。
curl -fsSL https://relayium.com/install.sh | sh
把这台机器绑定到你的账号(一次即可)
up 需要知道存到谁的账号下,所以每台机器登录一次。这是浏览器授权的设备登录——终端里除了你要确认的那个码,什么都不用输:
relayium login
- CLI 会打印一个短码和一个网址(relayium.com/device)。在已登录 relayium.com 的浏览器里打开它(若尚未登录,先在那里登录),输入短码并确认——这台机器就绑定好了。
- 登录信息存在 ~/.config/relayium/ 下,所以每台机器只需做一次。relayium whoami 显示当前绑定的账号;relayium logout 清除它。
- 以后要撤销某台机器,在浏览器里从账号的「设备」页删掉对应设备即可。
从第一台电脑上传
up 会遍历你给的文件,在本地加密,上传密文,并打印一个取件链接:
确认这台机器还绑定在你的账号上。它会打印账号和所绑定的服务器;如果显示未登录,先回到上面那步登录。
relayium whoami上传文件。up 会在本地加密,只把密文发出去,并把取件链接打印到 stdout。
relayium up ./report.pdf如果 24 小时的默认值不合适,就加一个保留策略参数。服务器实际保留多久,上限由你的套餐决定。
# 选择它能存活多久(默认 24 小时): relayium up ./report.pdf --burn # 下载一次后即删除 relayium up ./report.pdf --ttl 7d # 保留 7 天(上限取决于套餐) relayium up ./report.pdf --max-downloads 5 # 允许下载 5 次,之后删除把链接送到第二台机器能读到的地方。只有链接会走 stdout,所以管道里很干净。
relayium up ./report.pdf | pbcopy
上传成功是什么样
上传过程中 stderr 上会有一个进度条,结束后清除。链接会单独一行落在 stdout 上,随后是给人看的提示行——以及可能出现的保留时长提示——都在 stderr 上。
relayium up ./report.pdf
https://relayium.com/d/7fK2p…#k=Xr8s…
opens in a browser, or fetch it with `relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…'`- 保留策略:--burn 下载一次后即删;--ttl <时长> 保留固定时间;--max-downloads <n> 允许固定下载次数。三者都不给时,链接保留 24 小时——这就是不带 --ttl 时的默认值。
- --ttl 接受带单位的时长——30m、12h、7d、2w——也接受纯秒数,所以 --ttl 3600 和 --ttl 1h 是同一个请求。上限由你的套餐决定:Free 1 天、Plus 3 天、Pro 7 天、Max 14 天。要求超过上限时,服务器会静默地只按上限保留——up 随后会打印一行提示,告诉你它实际保留了多久。
在第二台电脑下载
在另一台机器上,把链接交给 down。无需登录、无需配置——解密文件的密钥就在链接里,所以 down 完全不需要你的账号:
relayium down '<你的链接>' <目标目录>用你顺手的方式把链接弄到第二台机器上。那边除了 CLI 本身,不需要安装或登录任何东西。
把链接用单引号括起来交给 down,后面跟上文件该落地的目录。
relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…' ./downloads省略目录就落到当前目录。
relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…'
下载成功是什么样
它写下的每个文件都会逐行列在 stdout 上,数量和目标目录则在 stderr 上确认。
relayium down 'https://relayium.com/d/7fK2p…#k=Xr8s…' ./downloads
downloads/report.pdf
✓ downloaded 1 file(s) to ./downloads- 如果该文件设了阅后即焚、已达下载次数上限或已过期,链接就失效了,down 会告知它已不存在。
- 连接中断或卡死时,同一次运行内会自动重试:down 最多重连五次,并用 HTTP Range 请求从最后一个完整密文帧继续,所以一个大文件不会因为被代理重置就从头再下。对着忽略 Range 的服务端——老版本,或者阅后即焚/限次的文件——它会在这同一次运行里重头再下。
- 这种恢复不会跨越命令本身。尝试用尽后,down 会把已经写下的内容删掉,而不是留下一个看起来完整的截断文件;再跑一次 down 是从头开始的。这和 relayium sync 那种跨运行的续传不是一回事。
也能和网页端互通
这个链接和网页端用的是同一种,所以 CLI 与浏览器可以自由互通:
- relayium up 产出的链接能在浏览器里打开——把它给没装 CLI 的人,对方就能从网页下载。
- 在 relayium.com 上创建的分享链接,也能在另一台机器上用 relayium down 取回。
服务器能看到什么、看不到什么
云端传输始终是端到端加密的:
- 你的文件在上传前就已在你的机器上加密。解密密钥只存在于链接的 #k= 片段里,从不发给服务器——Relayium 存的是它读不了的密文,连文件名也是。
- 这也意味着链接是回到文件的唯一途径:丢了链接,文件就无法找回,你和我们都不行。
链接不管用的时候
几乎所有失败的 up 或 down 都落在下面四种里,而且没有一种需要靠猜——决定性的状态要么由一条命令打印出来,要么就摆在你敲的那行命令里。
现象、检查、修复
- up 直接拒绝并提示 “run relayium login first”。
relayium whoami # not logged in (run `relayium login`)上传是把文件存到你的账号名下,所以这台机器需要凭据。运行 relayium login,在浏览器的 relayium.com/device 上批准;之后 whoami 就会打印出你的账号和它绑定的服务器。
- down 解析不了链接,密钥像是凭空消失了。
echo relayium down https://relayium.com/d/7fK2p#k=Xr8s # relayium down https://relayium.com/d/7fK2p在大多数 shell 里,没加引号的 # 会开启注释,于是从 #k= 起的部分根本没进到命令里——echo 会原样告诉你活下来的是哪一截。把整条链接用单引号括起来,那个片段(也就是解密密钥)就能完整送达。
- 链接比你要的 --ttl 更早失效。
relayium up ./report.pdf --ttl 7d # note: your plan caps retention, so this link is kept 1d, not the 7d you asked for超过套餐上限的请求,服务器会静默地按上限处理——Free 1 天、Plus 3 天、Pro 7 天、Max 14 天——随后 up 会打印这行提示,告诉你实际拿到了多久。此外 --burn 和 --max-downloads 也会让链接提前作废。想要新的就重新上传一次。
- 明明登录了,up 却说你登录在别处。
relayium whoami # you@example.com (https://relayium.com)不是签发你令牌的那个 --server,会被拒绝而不是把凭据发过去——发过去既会泄露它,在那边也根本认证不了。要么去掉 --server,让它用 whoami 刚打印出来的那个绑定服务器;要么先对另一台主机执行 relayium login。
常见问题
我需要账号吗?
上传时需要;发送时,只在必须签发配对码的情况下需要。relayium up 始终需要 relayium login,这样文件才能存到你的账号下。relayium send 只在服务器必须为你签发一个新的配对码时才需要——用别人给你的配对码运行 send,它不会签发任何东西,因此也不需要登录。relayium down 和 relayium receive 不需要账号,push/pull、daemon 直连、sync 也都不需要。
我的文件加密吗?
是的,端到端加密。上传前就在你的机器上加密;密钥只存在于链接的 #k= 片段里,从不发给服务器。Relayium 存的是它读不了的密文,连文件名也是。
如果我把链接弄丢了呢?
链接携带解密密钥的唯一副本,所以链接一丢,文件就无法找回——服务器上没有任何东西能恢复它。
能限制谁来下载吗?
任何拿到链接的人都能下载,所以要私密分享。用 --burn 只允许下载一次,或 --max-downloads <n> 限制次数,再用 --ttl <时长> 让它到期自动删除。
能和网页端互通吗?
能。relayium up 产出的链接能在浏览器里打开;在 relayium.com 上创建的分享链接也能在另一台机器上用 relayium down 取回。
下载被中断了会怎样?
在同一次运行内,down 自己会处理:最多重连五次,并用 HTTP Range 从最后一个完整密文帧继续;服务端若忽略 Range,它就在这一次运行里重头再下。尝试用尽后它会删掉半截的输出,而不是留下一个截断文件——所以之后再跑 relayium down 是从头开始的,而不是接着上一次。只有 relayium sync 才会跨运行续传。
准备好在自己的几台机器之间传文件了吗?装上 CLI,运行 relayium login,然后 up 它。
获取 CLI