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

[Proposal] Uppy-based UI for file uploads in RDM #86

Open
mirekys opened this issue Sep 17, 2024 · 1 comment
Open

[Proposal] Uppy-based UI for file uploads in RDM #86

mirekys opened this issue Sep 17, 2024 · 1 comment
Assignees
Labels
Proposal: Pending Proposal for new RFC, pending triage

Comments

@mirekys
Copy link

mirekys commented Sep 17, 2024

Motivation

Why are we doing this? What user stories does it support? What is the expected outcome?

RDM users would like to:

  1. Choose a single or multiple files for upload
  2. See upload progress of each file
  3. Abort an ongoing upload
  4. Retry failed uploads
  5. Manage already uploaded files (remove, update associated metadata - e.g. image caption, description
  6. Verify file integrity (checksums)
  7. Efficiently upload large (> 10 GiB) files over not-so-reliable networks

We would like to:

  1. Directly upload data to (S3) storage, bypassing Invenio server, reducing app server load when processing uploads
  2. Leverage (S3) multipart upload through Pluggable transfers for invenio-records-resources #76 to split and upload large files in multiple parallel chunks

Current UI implementation covers just a subset of these requirements, especially
lacks in department of large files uploads

Summary

What are you proposing to change (high-level overview only)?

Integrate Uppy.io, together with the AWS S3 plugin for a file uploader UI.
Can be probably done either by a headless approach (using its functionality, but leaving most of UI representation as is), or
by replacing current UI altogether with full Uppy Dashboard (examples).

Latest Uppy.io version (v4) requires React 18, but previous version compatible with React 16 is still usable for this case

This RFC will rely on features coming from: #76

Resources

Which resources do you have available to implement this RFC and what is your overall timeline?

CESNET is willing to take over implementation, we'll need it done approx. by the end of November

@mirekys
Copy link
Author

mirekys commented Dec 10, 2024

@slint @ntarocco @zzacharo just pinging this :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Proposal: Pending Proposal for new RFC, pending triage
Projects
None yet
Development

No branches or pull requests

5 participants