-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Motivation
Why are we doing this? What user stories does it support? What is the expected outcome?
RDM users would like to:
- Choose a single or multiple files for upload
- See upload progress of each file
- Abort an ongoing upload
- Retry failed uploads
- Manage already uploaded files (remove, update associated metadata - e.g. image caption, description
- Verify file integrity (checksums)
- Efficiently upload large (> 10 GiB) files over not-so-reliable networks
We would like to:
- Directly upload data to (S3) storage, bypassing Invenio server, reducing app server load when processing uploads
- 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