Batch file download via tar bundle #116

Closed
opened 2026-06-06 15:02:25 +00:00 by aaperis · 0 comments
aaperis commented 2026-06-06 15:02:25 +00:00 (Migrated from github.com)

Please describe the feature

As a user, I want to select and download multiple files so that I can work on specific files from my computer.

Detailed description

The goal here is to download multiple files while preserving their directory structure. The architecture and implementation details are documented here.

Since content and header lengths are stable (although header bytes are not), it is possible to bundle all requested files into a deterministic tar file.

  • Add batch file download action
  • The client calls a server proxy api with batch download payload (e.g. csv of fileids)
  • Download requests for file downloads are done server side, files are piped to a deterministic tar stream.
  • The tar stream is proxied back to the client (browser).
  • The browser sees one tar file download which it handles natively.
  • Untar of the downloaded file creates a directory structure based on file prefixes of their filepaths.

Additional context

Resuming of the tar file is not in scope for this.

## Please describe the feature As a user, I want to select and download multiple files so that I can work on specific files from my computer. ## Detailed description The goal here is to download multiple files while preserving their directory structure. The architecture and implementation details are documented [here](https://github.com/NBISweden/sda-download-ui/blob/65-options-for-efficient-dataset-download-implementations/docs/tar-download.md). Since content and header lengths are stable (although header bytes are not), it is possible to bundle all requested files into a deterministic tar file. - [x] Add batch file download action - [x] The client calls a server proxy api with batch download payload (e.g. csv of fileids) - [x] Download requests for file downloads are done server side, files are piped to a deterministic tar stream. - [x] The tar stream is proxied back to the client (browser). - [x] The browser sees one tar file download which it handles natively. - [x] Untar of the downloaded file creates a directory structure based on file prefixes of their filepaths. ## Additional context Resuming of the tar file is not in scope for this.
Sign in to join this conversation.
No description provided.