IQSS / IQSS/dataverse

Feature Request:Bulk download support

Open
#11,587 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Type: Feature
Dominant language
Java
Stars
1.1k
Forks
564
Avg merge
2d 2h
Merged PRs (30d)
29

Description

Overview of the Feature Request

Our current methods for bulk file download from a dataset (requesting a zip or using a ~script to download individual files) are not perfect (zipping on the server side requires work/memory on the server, individual file downloads have to be throttled to handle rate limiting).

For direct download from S3, a faster approach might be to have an api to request download URIs for many/all files at once. This would mean one call to Dataverse which could be followed by parallel calls to the S3 store (which often has good bandwidth/no rate limiting).

The downsides I can see are that this doesn't help for file stores/non-direct download and any script would need to be cognizant of the timeouts for the signed urls (with a timeout of one hour, the script would have to start the download of all files within one hour, or request subsets of files to keep within that window, etc.)

What kind of user is the feature intended for?
(Example users roles: API User, Curator, Depositor, Guest, Superuser, Sysadmin)
downloaders

What inspired the request?
Inspired by a support request at Harvard:

Are you thinking about creating a pull request for this feature?
Not immediately unless there's interest.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the existing dataset bulk-download methods and the direct-download path for S3, then define the API behavior for requesting many download URIs, non-direct-download stores, and signed-URL timeouts. Done means the scope and behavior are agreed, including how callers handle subsets and parallel downloads.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.