Golang developer required to build a resumable upload server using Ubuntu and TUSd
This document outlines the requirements for the implementation of a TUSd (resumable upload) server for our client to be deployed on a new Ubuntu Digital Ocean VM.
[login to view URL]
We are using the [login to view URL] client deployed on a Wordpress website on the client's website, which will be used by the server.
The TUS server will need to:
1. Store files locally in a specified folder structure.
2. Authenticate with a simple API. The Uppy client will pass an access code to the upload server via meta data which must be checked against an existing API when the TUS commences an upload. The API call will return the relative path to store the all files within the session. I believe this would be accomplished using a HTTP hook as outlined in the documentation - [login to view URL]
3. Set up a reverse proxy to handle HTTPS connection. TUSd does not listen over https natively, so this is the recommended solution as detailed here - [login to view URL]
4. Server must be configured to run as a service and it must be possible to restart in the event of a crash. The option for automated restarts would be preferable if possible.
5. Handle concurrent uploads. The Uppy client is configured to allow up to 100 uploads per session, each file being up to 4Gb in size. Our initial expectation is for the server to be able to handle 6 or more Uppy sessions, each uploading 30 files or more.
6. Uploaded files must be synced to a google drive account. This can either be accomplished by setting up a sync client or mounting a virtual file system and targeting uploads to that location (this being the preferred option). Access keys for this will also be provided.
We're looking to establish an ongoing relationship with a developer to set up and support the server moving forwards, so whilst the scope of the initial piece of work is configure the server to meet the requirements above, we'd be looking to work on an ad-hoc basis to support the running of the server and make further improvements and security enhancements.
Please provide a quote for the initial project and options for an ongoing support agreement if this is available.