Skip to content

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

@mirekys

Description

@mirekys

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

Metadata

Metadata

Assignees

Labels

Proposal: PendingProposal for new RFC, pending triage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions