tus-spring-boot icon indicating copy to clipboard operation
tus-spring-boot copied to clipboard

A resumable upload service implementing the TUS Protocol. Built with Spring Boot and React-Redux.

TusSpringBoot

A File Upload service built on Spring Boot and React-Redux, implementing the TUS Protocol.

REQUIREMENTS

  • docker (if you want it to run as a container)
  • nodejs and NPM (if you don't have docker)
  • JDK 8
  • maven

USAGE

The client can be found here (though the init.sh script should take care of that for you).

Clone this repo.

This application is initialized using the ./init.sh script. Run ./init.sh --help to see the available options.

Whether containerized or on the host OS, the application will be available on localhost:8080. Upload a file, then close your browser (or even restart your machine!) before it hits 100%. When you try to upload the same file, the upload process will pick up where it left off.

NOTE: If you're behind a corporate firewall, set the HTTP_PROXY and HTTP_PROXY_PORT environment variables

CURRENT FEATURES

  • Chunk-based upload.
  • Toggle between single stream and chunked uploads.
  • Progress table.
  • Fault-tolerant; can resume upload even after restarting your machine.
  • Containerization.

TODOs

  • Checksum for data integrity
  • Scheduled file cleanup
  • Authentication
  • Persisting historical data about uploads
  • Deployment
  • ~~Docker integration.~~
  • ~~Unit Tests.~~
  • ~~Refactor most logic into a singleton.~~