Documentation
¶
Overview ¶
Package tus provides a client to tus protocol version 1.0.0.
tus is a protocol based on HTTP for resumable file uploads. Resumable means that an upload can be interrupted at any moment and can be resumed without re-uploading the previous data again. An interruption may happen willingly, if the user wants to pause, or by accident in case of an network issue or server outage (http://tus.io).
Index ¶
Constants ¶
const (
ProtocolVersion = "1.0.0"
)
Variables ¶
var ( ErrChuckSize = errors.New("chunk size must be greater than zero.") ErrNilLogger = errors.New("logger can't be nil.") ErrNilStore = errors.New("store can't be nil if Resume is enable.") ErrNilUpload = errors.New("upload can't be nil.") ErrLargeUpload = errors.New("upload body is to large.") ErrVersionMismatch = errors.New("protocol version mismatch.") ErrOffsetMismatch = errors.New("upload offset mismatch.") ErrUploadNotFound = errors.New("upload not found.") ErrResumeNotEnabled = errors.New("resuming not enabled.") ErrFingerprintNotSet = errors.New("fingerprint not set.") )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
Config *Config
Url string
Version string
Header http.Header
// contains filtered or unexported fields
}
Client represents the tus client. You can use it in goroutines to create parallels uploads.
func (*Client) CreateOrResumeUpload ¶
CreateOrResumeUpload resumes the upload if already created or creates a new upload in the server.
func (*Client) CreateUpload ¶
CreateUpload creates a new upload in the server.
type ClientError ¶
func (ClientError) Error ¶
func (c ClientError) Error() string
type Config ¶
type Config struct {
// ChunkSize divide the file into chunks.
ChunkSize int64
// Resume enables resumable upload.
Resume bool
// OverridePatchMethod allow to by pass proxies sendind a POST request instead of PATCH.
OverridePatchMethod bool
// Store map an upload's fingerprint with the corresponding upload URL.
// If Resume is true the Store is required.
Store Store
// Set custom header values used in all requests.
Header http.Header
// HTTP Client
HttpClient *http.Client
}
Config provides a way to configure the Client depending on your needs.
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig return the default Client configuration.
type Upload ¶
type Upload struct {
Fingerprint string
Metadata Metadata
// contains filtered or unexported fields
}
func NewUploadFromBytes ¶
NewUploadFromBytes creates a new upload from a byte array.
func NewUploadFromFile ¶
NewUploadFromFile creates a new Upload from an os.File.
func (*Upload) EncodedMetadata ¶
EncodedMetadata encodes the upload metadata.
type Uploader ¶
type Uploader struct {
// contains filtered or unexported fields
}
func NewUploader ¶
NewUploader creates a new Uploader.
func (*Uploader) Abort ¶
func (u *Uploader) Abort()
Abort aborts the upload process. It doens't abort the current chunck, only the remaining.
func (*Uploader) NotifyUploadProgress ¶
Subscribes to progress updates.
func (*Uploader) UploadChunck ¶
UploadChunck uploads a single chunck.