Resilient file uploading with Go
- Track: Go
- Room: UB5.132
- Day: Sunday
- Start: 12:30
- End: 13:00
- Video only: ub5132
- Chat: Join the conversation!
File uploads are a ubiquitous and fundamental part of modern applications. While simple at first, they become increasingly challenging as file sizes grow. Users expect reliable data transfers, even when uploading multi-gigabyte files over unreliable mobile networks.
Conventional file uploads over HTTP fail unrecoverably when the underlying connection is interrupted. Resumable uploads, on the other hand, allow an application to continue uploading a file exactly where it left off. This preserves previously transferred data and greatly improves the user experience.
Tusd is an open-source file-upload server written in Go that makes it easy to add resumable uploads to any application - even those written in languages other than Go.
This talk explores why Go is a natural fit for such use cases. In particular, we dive into how contexts help coordinate concurrent, long-running HTTP requests, how the net/http package provides fine-grained control over request handling, and how Go’s tooling assists in testing various failure scenarios.
Additional links: - Tus homepage: https://tus.io/ - Tusd upload server: https://github.com/tus/tusd
Speakers
| Marius Kleidl |