Skip to content
This repository was archived by the owner on Jul 10, 2022. It is now read-only.
/ go-tus Public archive
forked from eventials/go-tus

A pure Go client for the tus resumable upload protocol

License

Notifications You must be signed in to change notification settings

SignTools/go-tus

This branch is 1 commit ahead of, 2 commits behind eventials/go-tus:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4d64b8c Â· Dec 11, 2021

History

53 Commits
Jun 27, 2017
Dec 21, 2016
Oct 18, 2021
Oct 19, 2018
Mar 14, 2020
Mar 14, 2020
Dec 9, 2016
Oct 2, 2017
Dec 11, 2021
Mar 14, 2020
Jun 17, 2019
Jan 20, 2017
Dec 21, 2016
Dec 13, 2016
Oct 19, 2018
Mar 14, 2020
Mar 14, 2020
Dec 21, 2016
Oct 19, 2018
Oct 19, 2018
Oct 2, 2017

Repository files navigation

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

About

A pure Go client for the tus resumable upload protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.9%
  • Dockerfile 1.1%