Transfer.sh is a command-line file sharing tool that lets users quickly upload and download files through a simple HTTP interface.
The tool solves the problem of sharing files without requiring users to navigate web interfaces or set up complex infrastructure. It works by providing a lightweight server written in Go that accepts file uploads via curl or similar command-line tools and generates shareable links. Files can be stored on multiple backends including Amazon S3, Google Drive, Storj, or the local file system. The tool supports optional client-side encryption, download limits via the Max-Downloads header, expiration times via the Max-Days header, and virus scanning through VirusTotal integration. Users can also create direct download or inline viewing links through URL aliases.
Transfer.sh suits developers and teams who want to self-host a private file sharing service without the overhead of larger platforms. The README explicitly recommends self-hosting rather than relying on public installations, emphasizing that users concerned about encryption should only trust their own servers. The tool is particularly useful for quick command-line workflows where generating a shareable link in seconds matters more than a polished web interface. The project provides Docker support for easy deployment.
The README contains a security warning regarding IP filter and HTTP authentication bypass through unauthenticated X-Forwarded-For header spoofing, which prospective users should review before deployment. Development activity shows the project maintains automated testing through GitHub Actions and accepts community contributions. The maintainers have established clear boundaries between the repository itself and any public installations, declining to advertise third-party deployments for security reasons.