• Stars
    star
    170
  • Rank 223,357 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A pure Go client for the tus resumable upload protocol

go-tus Build Status Go Report Card GoDoc

A pure Go client for the tus resumable upload protocol

Example

package main

import (
    "os"
    "github.com/eventials/go-tus"
)

func main() {
    f, err := os.Open("my-file.txt")

    if err != nil {
        panic(err)
    }

    defer f.Close()

    // create the tus client.
    client, _ := tus.NewClient("https://tus.example.org/files", nil)

    // create an upload from a file.
    upload, _ := tus.NewUploadFromFile(f)

    // create the uploader.
    uploader, _ := client.CreateUpload(upload)

    // start the uploading process.
    uploader.Upload()
}

Features

This is not a full protocol client implementation.

Checksum, Termination and Concatenation extensions are not implemented yet.

This client allows to resume an upload if a Store is used.

Built in Store

Store is used to map an upload's fingerprint with the corresponding upload URL.

Name Backend Dependencies
MemoryStore In-Memory None
LeveldbStore LevelDB goleveldb

Future Work

  • SQLite store
  • Redis store
  • Memcached store
  • Checksum extension
  • Termination extension
  • Concatenation extension