Find Jobs
Hire Freelancers

TUSd Server Implementation - Golang Developer

£250-750 GBP

已关闭
已发布将近 5 年前

£250-750 GBP

货到付款
Golang TUSd Resumable Upload Application and Server Deployment This document outlines the requirements for the implementation resumable upload server using the TUS protocol. The server must use the TUSd server (built in Golang) which will require the development of a Golang application to implement resumable uploads from our Wordpress website. The following documentation details the TUSd server library: [login to view URL] The server will be based on a new Ubuntu DigitalOcean VM provided on project start. SSH access will be provided before the project commences. We are using the [login to view URL] client deployed on a Wordpress website, which will be used by the server. This has already been configured and there should be no need to make changes to this as part of the project. A public url will be provided to the developer for testing purposes. The TUS server will need to: 1. Authenticate with a simple API. --------------------------------- The Uppy client is configured to pass an invite code to the upload server via metadata ([login to view URL]). meta: { inviteCode: ‘123-123-123’ } The TUSd application must make a GET request to our API before proceeding with any uploads GET [API URL]/invite/[inviteCode] The API will return a JSON object as follows: RESPONSE (on success) { "inviteCode": "XXX-XXX-XXX", "accessCodeId": "123", "dateCreated": "2019-01-01 16:43:22", "name": "xxxxx", "email": "xxxxx@xxxxxx", "accessCode": "YYY-YYY-YYY", "activated": "1", "eventName": "123", "eventDate": "2022-04-09 15:28:37", "path": "relative/path/to/upload", } Within the response, the path specifies where the TUSd application should store each file within the upload session. In the event that an invite code is not found or is no longer valid (a process which we will manage externally), the following response would be returned and file uploads should be denied. RESPONSE (on error) { "inviteCode": null, "accessCodeId": null, "dateCreated": null, "name": null, "email": null, "accessCode": null, "activated": null, "eventName": null, "eventDate": null "path": null } The TUSd application will therefore need to verify that the data received from the API is a success response by checking that path is not null. Note: For now all additional fields will not be required. Note: From reviewing the TUSd documentation, it is recommended that the API request can be accomplished by using an HTTP hook as outlined in the following documentation: [login to view URL] 2. Store files locally in a specified folder structure. ------------------------------------------------------- The Ubuntu server will be configured with a block storage volume mounted as a separate drive. The TUSd application will need to be configured to store all files on this drive, then use the relative path provided in point 1 to determine the location of each file. Note: By default TUSd stores all files using a GUID for the filename and a .bin extension. A separate .info file accompanies each uploaded file containing information about the originating file name, file extension, mime type etc. -rw-r--r-- 1 root root 2702083 Apr 11 15:56 [login to view URL] -rw-r--r-- 1 root root 321 Apr 11 15:55 [login to view URL] -rw-r--r-- 1 root root 1353446 Apr 11 15:49 [login to view URL] -rw-r--r-- 1 root root 321 Apr 11 15:49 [login to view URL] -rw-r--r-- 1 root root 2584571 Apr 11 16:32 [login to view URL] -rw-r--r-- 1 root root 321 Apr 11 16:32 [login to view URL] -rw-r--r-- 1 root root 713280 Apr 11 15:49 [login to view URL] -rw-r--r-- 1 root root 320 Apr 11 15:49 [login to view URL] Below is an example a .info file: {"ID":"0a0774f8e3a2c7d87ba41f956b8c86be","Size":2584571,"SizeIsDeferred":false,"Offset":0,"MetaData":{"filename":"[login to view URL]","filetype":"image/jpeg","name":"[login to view URL]","type":"image/jpeg"},"IsPartial":false,"IsFinal":false,"PartialUploads":null} After a file has been successfully uploaded, the TUSd application should move files to the path defined by the API and be renamed to their original file name. Example: [drive]/data/[login to view URL] Should be moved to: [drive]/data/[path]/[login to view URL] 3. Install apache, setup an SSL and configure a reverse proxy to handle HTTPS connections. ------------------------------------------------------------------------------------------ The Uppy client will be hosted over HTTPS however the TUSd client does not natively support this. Uppy will therefore return a mixed content error when uploading files directly to the TUS server. It is required that a reverse proxy be set up on the Ubuntu server, details and sample configuration scripts can be found below. [login to view URL] Note: The Ubuntu server will not be pre-configured with apache so this will need to be installed. We will set up an entry in our DNS to point upload.[our domain name] to the server which can then be used for the SSL. The server should use LetsEncrypt for SSL certificates and be configured to auto renew SSLs. Full instruction for this are provided below: [login to view URL] 4. The TUSd application must be configured to run as a service -------------------------------------------------------------- The TUSd application must be configured to launch automatically whenever the server is restarted. Instructions to perform a manual restart of the TUSd application over ssh should also be provided upon completion of the project. Optional: Please advise if the TUSd application can automatically restarted in the event of a crash and implement this feature. This feature would be deemed as a non-critical requirement for the project. 5. Concurrent uploads. ---------------------- The Uppy client is configured to allow up to 100 uploads per session, with 6 files being uploaded concurrently per upload session. Each file being up to 4Gb in size. As part of our acceptance testing, we require that the server be able to handle 6 or more Uppy sessions at the same time. This would equate to 36 concurrent uploads with no upload fails reported by Uppy.. 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 to 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.
项目 ID: 19298482

关于此项目

7提案
远程项目
活跃5 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
7威客以平均价£648 GBP来参与此工作竞价
用户头像
Good day Full Stack Expert development team is ready to serve you. Our current rate is 50 usd per hour and service quality is excellent Can you send me a message? Then we can discuss the details Thank you
£555 GBP 在5天之内
5.0 (91条评论)
8.5
8.5
用户头像
Hi there, I have checked the details I have great experience with Golang, Linux, Software Architecture. Please start the chat so we can discuss this job more in detail. Thanks
£555 GBP 在10天之内
4.9 (62条评论)
7.7
7.7
用户头像
Hi, I have read your proposal with all details, and i can help you with tusd in way that you specificly requested. If interested, contact me for more details.
£750 GBP 在5天之内
4.9 (15条评论)
5.7
5.7
用户头像
Hello Friend, I have read you project requirements.I am familiar with your required technologies and I have expertise resource to start with your project. I have experience in network communication development, including TCP, UDP, etc.I've also worked on projects that use JSON to transfer data.I think I can finish your project. If you are interested in me, please contact me to discuss the details. Thanks Regards Baofeng
£666 GBP 在10天之内
4.9 (6条评论)
3.5
3.5
用户头像
Thanks for clearly mentioning the project requirement and expected output. I am part of our team (dedicated and passionate developers). We have clearly understood your requirements and we guarantee to deliver on time. We have more than 5 years of experience in Golang, backend, and front end. We have already delivery an application based on TUSd.
£666 GBP 在9天之内
0.0 (0条评论)
0.0
0.0
用户头像
I am currently writing a call and message sync http server for Samsung gear watch in go language(Rest)and using Cassandra as database and json for data transfer where I am also using google fcm for pushing messages. I have all those skills as per required. I have implemented all the authentication, health check, logger(rotated, with different log levels), encryption and decryption and all such things required for a REST server. I assure you, together we will enjoy each and every part of this project.
£722 GBP 在5天之内
0.0 (0条评论)
0.0
0.0

关于客户

UNITED KINGDOM的国旗
Leeds, United Kingdom
0.0
0
付款方式已验证
会员自4月 17, 2019起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。