Skip to main content

Resilient file uploading with Go

UB5.132 | Day 2 | 12:30 - 13:00 | Speakers: Marius Kleidl

Resilient file uploading with Go
A picture of a devroom at FOSDEM 2024
Open in browser

Notes

Abstract

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

Marius Kleidl is a software engineer working on an around the web. He's an open-source enthusiast, contributing to OSS projects for more than 12 years, and leading the tus project since 2016. He's actively contributing to the development of new networking technologies in the IETF, where he also chairs the AVTCORE working group.


Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.