Directly upload SLOs, directories, and multiple files

Registered by Mohana

Summary
=======
Add functionality to directly upload Standard Large Objects, directories, and multiple files to object storage. Update the user interface with a progress bar for each upload in-progress.

Motivation
========
Horizon currently supports direct file uploads to object storage, one file at a time. Users who want to upload multiple files, folders, or large objects must do it through the Swift CLI or other clients. By implementing these features, it will greatly increase the file management capacity of Horizon and improve user experience.

Description
=========
Directly upload Standard Large Objects
    - Using segmentation, segments are uploaded in *_segments container
    - Assemble and upload manifest file original container in place of the actual object

Directly upload multiple files
    - Instead of a single File, upload info is an array of File(s)
    - Users can select multiple files to upload to object storage

Directly upload directories
    - Same as multiple file upload functionality
    - Users can select folder(s) to upload to object storage

For each file being uploaded, emit a progress event to pass data about the size of the file already uploaded for better user experience.

UX
===
    - In the upload file modal, include “File(s)” and “Directory” inputs
    - A separate “Large File” button
    - Ideally, large object upload and multiple/directory are combined in the same interface

In the upload modal, once user hits “Upload File(s)” button, a progress bar is displayed and lets the user know how much of their files have been uploaded (percentages and/or bytes). Progress bar can be similar to one displayed when Deleting objects in Object Storage, or when uploading a Glance Image

Wireframes, Mocks, Videos and UI Markup
---------------------------------------------------------
I am implementing these features as a plugin (for now). Source code can be found here https://github.com/msarmie/upload-slo

Screenshots can be found here:
https://nextcloud.scholarsportal.info/s/BMwGSEPzzAosQ9Y

Testing
======
To be determined

Outside Dependencies
==================
To be determined

Requirements Update Required
========================
N/A at the moment

Doc Impact
=========
N/A at the moment

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Mohana
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.