Documentation
¶
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") ErrNilDownload = errors.New("download can't be nil") ErrDownloadNotFound = errors.New("download not found") )
Functions ¶
This section is empty.
Types ¶
type ClientError ¶
func (ClientError) Error ¶
func (c ClientError) Error() string
type Upload ¶
type Upload struct {
Fingerprint string
Metadata Metadata
// contains filtered or unexported fields
}
func NewUpload ¶
func NewUpload(reader io.Reader, size int64, metadata Metadata, fingerprint string) (*Upload, error)
NewUpload creates a new upload from an io.Reader.
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 UploadClient ¶
type UploadClient struct {
Config *UploadConfig
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 NewUploadClient ¶
func NewUploadClient(url string, config *UploadConfig) (*UploadClient, error)
NewClient creates a new tus client.
func (*UploadClient) CreateOrResumeUpload ¶
func (c *UploadClient) CreateOrResumeUpload(u *Upload) (*Uploader, error)
CreateOrResumeUpload resumes the upload if already created or creates a new upload in the server.
func (*UploadClient) CreateUpload ¶
func (c *UploadClient) CreateUpload(u *Upload) (*Uploader, error)
CreateUpload creates a new upload in the server.
func (*UploadClient) ResumeUpload ¶
func (c *UploadClient) ResumeUpload(u *Upload) (*Uploader, error)
ResumeUpload resumes the upload if already created, otherwise it will return an error.
type UploadConfig ¶
type UploadConfig 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.UploadStore
// 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 DefaultUploadConfig ¶
func DefaultUploadConfig() *UploadConfig
DefaultConfig return the default Client configuration.
func (*UploadConfig) Validate ¶
func (c *UploadConfig) Validate() error
Validate validates the custom configuration.
type Uploader ¶
type Uploader struct {
// contains filtered or unexported fields
}
func NewUploader ¶
func NewUploader(client *UploadClient, url string, upload *Upload, offset int64) *Uploader
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.