跳转到内容
HexaTransfer
返回博客
比较与替代方案

软件开发者的最佳文件传输工具

为开发者寻找最佳文件传输工具,具备API访问、CLI支持、自动化能力和安全代码共享功能。

开发者最佳文件传输工具需要兼顾 API 访问、CLI 支持、自动化和安全性。Rclone 在命令行下支持 70 多个后端并附带加密。AWS CLI 和 gsutil 以 IAM 受控访问将文件移至 S3 和 GCS。Croc 和 magic-wormhole 在终端之间提供点对点加密传输。MASV 提供已文档化的 REST API 用于构建产物交付。HexaTransfer 提供浏览器端加密上传,具备简洁的 JavaScript API 接口。按需选择:自动化流水线(Rclone、AWS CLI)、点对点(Croc、magic-wormhole)、还是交付给非技术收件人(MASV、HexaTransfer)。

Rclone:多后端的瑞士军刀

Rclone(rclone.org)是一个用 Go 编写的命令行工具,支持 70 多种云存储后端——S3、GCS、Azure Blob、Backblaze B2、Dropbox、Google Drive、Mega、OneDrive、pCloud 等。它处理同步、复制、移动、挂载、提供服务和加密操作。crypt 后端添加 AES-256-CTR 加密并以 scrypt 派生密钥,意味着可以将任何云提供商用作零知识存储。

对于每晚将备份发送至 S3 的开发者,Rclone 替代了 200 行定制 Python 脚本。rclone sync /var/data s3-encrypted:backups 在 cron 任务中运行,处理重试、断点续传和带宽限制。MIT 许可证开源,积极维护,在每日多 TB 工作负载中已被验证为生产可用。

AWS CLI、gsutil 与 Azure CLI

对于已深入特定云生态的团队,原生 CLI 是显而易见的选择。aws s3 cp file.tar.gz s3://bucket/key --sse aws:kms 用你的 KMS 密钥进行静态加密。预签名 URL 允许在不授予收件人凭证的情况下生成有时间限制的下载链接:aws s3 presign s3://bucket/key --expires-in 3600 生成一个 1 小时有效的链接。

Google Cloud 的 gsutil(以及更新的 gcloud storage 命令)通过签名 URL 提供类似功能。Azure CLI 使用 SAS 令牌。三者都提供对过期时间、IP 限制和访问条件的编程控制——这对于 CI/CD 中构建产物的交付至关重要。

Croc:终端间点对点传输

Croc(github.com/schollz/croc)使用 PAKE(密码认证密钥交换)进行端到端加密的点对点文件传输。双方交换一个随机代码短语,如"12-happy-robot",在两端各输入一次,文件经过只看到密文的中继服务器流动。

向客户笔记本电脑发送调试转储,或在两台开发者机器之间(各自位于不同 NAT 后)传输文件,Croc 毫无摩擦。没有账户、没有云存储,只是终端到终端。用 Go 编写,跨平台,可通过 Homebrew、apt 或二进制发布安装。

magic-wormhole 及其生态

magic-wormhole(github.com/magic-wormhole/magic-wormhole)是 Croc 的 Python 前身,采用相同的 PAKE 方案。它启发了一代点对点传输工具,至今仍通过 wormhole send 命令在自动化中使用。Python、Go、Rust 和 JavaScript 均有客户端库。

SPAKE2 密钥交换经过学术验证,由有密码学背景的研究人员实现。对于需要点对点传输工具且要求公开密码学依据的审计敏感环境,magic-wormhole 是有力选择。

MASV API:构建产物交付

MASV 的 REST API 允许开发者自动化大文件交付。创建包裹、通过分块多部分上传文件、获取下载 URL、追踪访问——所有这些都可从 CI 流水线中完成。Node.js、Python 和 Go SDK 处理认证和重试逻辑。Webhook 在下载事件时触发,形成审计追踪。

将 50 GB 游戏构建发送给 QA 团队,或向印刷伙伴发布预印 PDF,MASV API 替代了临时的手动上传。按 GB 计费与用量匹配,闲置容量不占预算。

签名 URL 与 HMAC 认证

对于自建传输流程的开发者,HMAC 签名 URL 是标准模式。服务端生成一个带过期时间戳和基于共享密钥对 URL 参数做 HMAC 签名的 URL。收件人提交 URL;服务端在提供文件前验证签名。AWS S3、Google Cloud Storage、Cloudflare R2 和 Backblaze B2 均原生支持此模式。

自托管服务器方面,Nginx 的 secure_link 模块和 Apache 的 mod_auth_token 提供相同功能。该模式简单、无状态、可水平扩展。验证时无需数据库查询。

HexaTransfer:面向非技术收件人的交付

开发者有时需要将文件发送给不会安装 Rclone 或使用 curl 的非技术人员:客户律师、外包设计师、外部审计员。对于这些场景,无需账户的浏览器端加密传输服务是正确选择。

HexaTransfer 每次传输支持 10 GB,采用 AES-256-GCM 客户端加密,托管于法国,7 天后过期。收件人在任何浏览器中打开链接,文件在客户端解密,下载完成。无 CLI、无账户、无摩擦。适用于向客户交付调试包或向外部律师发送法律材料。

功能对比矩阵

| 工具 | 类型 | 加密方式 | CLI | API | 使用场景 | |------|------|---------|-----|-----|---------| | Rclone | 多后端同步 | AES-256(crypt) | 是 | 否(二进制) | 自动化、备份 | | AWS CLI | 云存储 | KMS/SSE | 是 | 是(SDK) | S3 工作流 | | gsutil / gcloud | 云存储 | KMS | 是 | 是(SDK) | GCS 工作流 | | Croc | 点对点 | PAKE + AES | 是 | 否 | 快速开发传输 | | magic-wormhole | 点对点 | SPAKE2 + AES | 是 | 是(Python) | 可脚本化 P2P | | MASV | 大文件服务 | AES-256 静态加密 | 否 | 是(REST) | 构建产物交付 | | HexaTransfer | 浏览器服务 | E2EE 客户端加密 | 否 | Web UI | 非技术收件人交付 | | Dropbox API | 云存储 | AES-256 静态加密 | 否 | 是(REST) | 跨团队共享 |

CI/CD 的密钥管理

绝对不要硬编码传输凭证。使用带密钥管理器的环境变量:AWS Secrets Manager、HashiCorp Vault、GCP Secret Manager、Azure Key Vault,或 GitHub Actions secrets / GitLab CI 变量。定期轮换密钥——AWS 建议 IAM 访问密钥每 90 天轮换一次。

对于预签名 URL,保持较短的过期时间(构建产物 1—24 小时,代码/密钥更短)。记录每次预签名 URL 生成日志,包含请求服务身份和目标资源。SIEM 集成(Splunk、Sentinel、Datadog)捕获从意外子网生成的 URL 等异常行为。

审计日志与合规性

对于受监管工作(HIPAA、SOC 2 Type II、PCI DSS 4.0、ISO 27001),传输工具需要审计日志,记录谁在何时从何处访问了什么。AWS CloudTrail、GCP Audit Logs、Azure Monitor 和 Dropbox Team Audit Log 均提供此功能。自托管传输时,记录每次 GET 请求的客户端 IP、User Agent 和时间戳,发送至集中化日志系统。

对于 GDPR 第 30 条的处理活动记录,审计日志成为证据链。日志保留期限应与监管要求匹配(金融行业通常 6 年,美国 HIPAA 通常 6 年以上,GDPR 下各有差异)。

开发者应了解的传输协议

  • SFTP(SSH 文件传输协议,RFC 4251 系列):安全、广泛支持,同时处理推和拉
  • FTPS(基于 TLS 的 FTP):遗留系统仍在使用,尤其在银行业的 B2B 场景
  • HTTPS 配合可恢复上传(tus.io 协议):大文件网络传输的现代标准
  • AS2 / AS4:EDI 重度行业,带签名和加密的消息格式
  • WebDAV:协作编辑场景的 HTTP 读写
  • Rsync over SSH:经典的增量同步,在特定镜像工作流中仍无可替代

在选择工具之前,先确认对方要求哪种协议。要求 AS2 的合作伙伴不会接受 S3 预签名 URL。

按需选择正确工具

没有一个工具能赢得所有开发者传输场景。大多数后端开发者的合理工具包:Rclone 用于加密备份和通用同步,AWS CLI(或对应云的等效物)用于预签名 URL 工作流,Croc 用于快速点对点传输,HexaTransfer 用于非技术收件人交付,MASV API 用于大型构建产物分发。熟练掌握前三个,在需要时再用其他工具。

在 hexatransfer.com 上试试 — 免费、无需注册、最多 10 GB。

通过端到端加密安全发送大文件

通过端到端加密免费传输最大10GB的文件。无需注册账户。文件在上传前在浏览器中加密,其他人无法读取。

发送文件