Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Receiving (potentially large) uploads #96

Closed
chaoran-chen opened this issue Jul 25, 2023 · 2 comments · Fixed by #577
Closed

Receiving (potentially large) uploads #96

chaoran-chen opened this issue Jul 25, 2023 · 2 comments · Fixed by #577
Labels
discussion Open questions
Milestone

Comments

@chaoran-chen
Copy link
Member

chaoran-chen commented Jul 25, 2023

This issue is to discuss how we should implement the upload/receival of user submissions, i.e. the way of the data from the submitter's device (browser or CLI) to our (relational core) database. The main challenge is that the uploads can be huge and I think that our software should be able to accept arbitrarily large uploads. The admin can/should (of course) limit the maximum size.

Some thoughts:

  • Do we want to be able to resume after a short connection disruption? Maybe we can use tus.io or resumable.js Not relevant for MVP.
  • What are the compression formats that we should support? zip, zstd, gz, and xz?
  • Should the user also be able to upload large uncompressed files? If they do, maybe we can compress them in the browser/CLI software first? Or do we (for now) simply reject large uncompressed files (e.g., above 1 GB)?
  • We need to have protection again zip bombs.
  • The implementation needs to be memory-efficient (we shouldn't hold multiple GBs of data in RAM for one upload).
@chaoran-chen chaoran-chen added this to the MVP milestone Jul 25, 2023
@theosanderson
Copy link
Member

theosanderson commented Jul 25, 2023

I guess there's a general question about what the submission server (backend) will be built using. Have we decided that?
(I presume it could still be Astro, just checking)

@chaoran-chen
Copy link
Member Author

We were thinking about using Kotlin and Spring (which we also use for LAPIS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Open questions
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants