Closed butonic closed 2 years ago
Seems like tackling this at the protocol level is a compelling solution. @jfd do you have a branch published I could watch?
List of things I noticed during the implementation:
Before committing, decide on the protocol here #290
any update ? how much of this ticket has been accomplished already ?
We currently use the datasvc to upload files. It directly streams the PUT request body sent from the ocdavsvc to the storage drivers. This is the good part. The rest is far from scalable:
I propose to replace the datasvc with a tusd based implementation.
bulk
orbatch
extension to upload multiple small files in one request.even though that is not yet added to the spec: https://github.com/tus/tus-resumable-upload-protocol/pull/88, protocol PR [just got merged]. This works and creates a file without having to send subsequent PATCH requests:Really a compelling protocol, IMO.
But for reva it would have some consequences:
Open questions:
workflow
orprogress
extension?throttling
extension? maybe?get-after-workflow
extension that encrypts the stream before sending it to the server. the uploading client sends the decryption key so the server can execute the workflow and release the key to clients that have downloaded the encrypted file. they now only need to decrypt it. ... well ... only decreases latency anyway ... only works if the workflow does not change the file ... which is ok I guess ...Overall, I think this will clarify the responsibilities and makes a LOT of sense because it takes away many of the decisions we still need to make.