this2link 体验传输流程

工作原理

文件留在浏览器,服务器只协调传输路径。

this2.link 把访问能力、内容加密、连接信令和数据传输分开处理。完整链接携带 capability,浏览器负责处理文件;基础设施帮助双方建立连接,并在 WebRTC 受阻时临时转发密文。

体验传输流程

本地加密 · WebRTC 优先 · 服务器不保存文件

THIS2LINK / CHANNEL
01BROWSER AENCRYPT LOCALLY
WEBRTC / CIPHERTEXT
02BROWSER BVERIFY + RESTORE
NO SERVER FILE COPY

PROCESS

从选择文件到校验完成

01

创建访问 capability

发送浏览器生成 256 位随机值,并通过 HKDF-SHA-256 分别派生文件加密、内容发现和台主频道所需的凭据。

02

在设备本地加密

AES-256-GCM 保护文件清单和分块内容,认证信息同时绑定协议版本、传输 ID、分块序号和明文长度。

03

寻找在线来源

Durable Object 协调房间成员与 SDP/ICE 信令;它只看到派生后的房间凭据,看不到完整 capability、文件名或明文内容。

04

传输并临时接力

网络允许时,加密分块通过 WebRTC 直接传输。接收端校验完成后,可以缓存密文并在页面打开期间成为新的临时来源。

直传路径

网络允许时,WebRTC 连接两个浏览器

来源与接收浏览器协商对等连接并打开 DataChannel。文件分块在进入传输层之前已完成应用层加密,因此内容保护不只依赖传输通道。

系统不使用收费 TURN 服务,也不先把完整文件上传到集中式存储。这让架构更轻量,但严格网络可能无法建立首选的直连路径。

回退路径

临时中继只转发密文

直连在限定时间内失败后,接收方可以授权指定在线来源,通过现有 WebSocket 房间发送有上限的加密帧。Worker 转发帧和确认消息,不组装也不持久化文件。

中继按会话和来源执行硬限制。达到免费基础设施配额或协议上限时,传输会明确失败,不会静默转为付费存储。

本地优先

处理过程和临时状态由浏览器掌握

浏览器会在运行时检测压缩能力;加密、解密、完整性校验和文件输出都在用户设备完成。IndexedDB 可能保存已认证密文,让接收完成的浏览器临时应答频道。

浏览器存储可能被系统清理,它只是尽力而为的缓存,不是永久存储;页面必须保持打开才能继续作为来源。

BOUNDARIES

准确理解这些承诺

服务器不保存文件副本

应用没有文件上传 API、文件数据库或 R2 存储桶;受限网络仍可能让加密帧临时经过中继。

内容端到端加密

完整链接是一把 bearer capability。请只交给可信接收者;任何拿到它的人都可能在来源在线时解密内容。

可用性跟随在线浏览器

发送方或接收完成的浏览器必须保持在线;最后一个来源离开后,系统不再保证链接可用。

FAQ

技术常见问题

为什么 capability 放在 URL Fragment 中?

正常 HTTP 导航不会把 Fragment 发送给服务器,因此应用可以在客户端派生密钥,而不把完整 capability 放进页面请求。

Cloudflare 会收到什么?

Worker 提供静态资源、协调派生的房间身份和 WebRTC 信令,并可能临时转发受限密文;它不会收到完整 capability 或明文元数据。

如何发现文件损坏?

AES-GCM 使用与协议数据绑定的认证保护每个分块。接收浏览器会拒绝缺失、乱序、长度不符或认证失败的内容。

为什么文件上限是 150 MB?

当前预览版在浏览器和中继协议中使用相同的 150 MB 上限,以控制内存、耗时和免费基础设施用量。

它能代替备份吗?

不能。this2.link 用于即时传输和临时交接;重要文件仍应保存到接收者选择的持久存储中。

本地优先,并明确说明能力边界。

体验传输流程