transfer.sh:命令行文件传输的简洁方案
transfer.sh:命令行文件传输的简洁方案
transfer.sh 是一个命令行文件分享工具,目前在 GitHub 上有 15,849 个 Star。它的核心思路很直接:用 curl 完成文件上传和下载,不需要打开浏览器、不需要注册账号。整个交互过程就是标准的 HTTP 请求,和调用 API 一样自然。

上传下载就是一条 curl
transfer.sh 的使用方式极简。上传文件时执行:
curl --upload-file ./hello.txt https://transfer.sh/hello.txt
系统返回一个临时链接,文件就上传完成了。下载同样是一条 curl 命令。整个过程不需要图形界面,适合服务器环境、脚本自动化和快速分享场景。
如果需要加密传输,可以结合 gpg 在上传前加密、下载后解密。也可以把文件推送到 VirusTotal 做病毒扫描,这对安全性要求较高的场景很实用。每个上传的文件都会附带一个 X-Url-Delete 响应头,里面包含专属删除链接,方便后续主动清理,避免文件长期挂在网上。
上传时还可以附加请求头来控制文件行为。Max-Downloads 限制下载次数,Max-Days 设置过期天数。这些参数让临时分享更可控,不会因为链接泄露导致文件被无限下载。
多种存储后端可选
transfer.sh 不只是一个公共服务,更是一个可以自托管的开源项目。它支持四种存储后端:Amazon S3、Google Drive、Storj 去中心化存储、本地文件系统。
这意味着你可以把它部署到自己的服务器上,数据完全由自己掌控。配置也很灵活,通过环境变量或命令行参数就能指定存储 provider、访问密钥、上传大小限制、自动清理周期、CORS 域名等。参数列表覆盖了 TLS 证书、HTTP 基础认证、IP 黑白名单、速率限制等常见运维需求。
如果你已经在使用 S3 兼容的对象存储,transfer.sh 可以直接对接,不需要额外搭建存储层。本地模式则适合测试环境或内部网络部署。

部署几乎没有门槛
项目提供了 Docker 镜像,一条命令就能跑起来:
docker run --publish 8080:8080 dutchcoders/transfer.sh:latest --provider local --basedir /tmp/
本地开发也简单,Go 项目直接 go run 即可。从源码构建只需要 go build 一条命令。这种轻量级的部署方式,让个人开发者和小团队都能快速搭建内部文件中转站,不需要维护复杂的服务架构。
适用场景
transfer.sh 适合两类人。
第一类是经常需要在服务器之间传文件的开发者。scp 需要配置密钥,rsync 需要两边都安装且版本兼容。transfer.sh 只需要 curl,几乎所有 Linux 和 macOS 环境都自带,Windows 上通过 WSL 或 Git Bash 也能用。
第二类是想搭建私有文件分享服务的人。它不像 Nextcloud 那么重,也不像纯公共服务那样存在隐私顾虑。自托管加轻量,是它的核心竞争力。你可以把它放在内网,作为团队内部的文件交换站。
局限
transfer.sh 的定位是临时文件中转,不是长期存储方案。文件有过期机制,默认不会永久保存。如果你需要网盘级别的长期存储、版本控制和文件管理,这工具不太合适。
另外,作为公共服务使用时,transfer.sh 的域名状态需要自行确认。项目 README 里也提醒过,某些第三方域名已被标记为可疑来源,使用时需要留意。在生产环境中,强烈建议自托管,不要依赖公共实例。
总结
transfer.sh 把文件分享这件事做到了足够简单。curl 上传、curl 下载,没有多余步骤。对命令行用户来说,这是效率最高的文件传输方式之一。如果你经常需要在终端环境下分享文件,或者想搭建一个轻量级的私有文件中转服务,transfer.sh 值得尝试。
你经常需要在终端环境下分享文件,或者想搭建一个轻量级的私有文件中转服务,transfer.sh 值得尝试。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)