Help us shape the future of Go! Take the 2026 Go Developer Survey

upload

package
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolVersion = "1.0.0"
)

Variables

View Source
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

type ClientError struct {
	Code int
	Body []byte
}

func (ClientError) Error

func (c ClientError) Error() string

type Metadata

type Metadata map[string]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

func NewUploadFromBytes(b []byte) (*Upload, error)

NewUploadFromBytes creates a new upload from a byte array.

func NewUploadFromFile

func NewUploadFromFile(f *os.File) (*Upload, error)

NewUploadFromFile creates a new Upload from an os.File.

func (*Upload) EncodedMetadata

func (u *Upload) EncodedMetadata() string

EncodedMetadata encodes the upload metadata.

func (*Upload) Finished

func (u *Upload) Finished() bool

Returns whether this upload is finished or not.

func (*Upload) Offset

func (u *Upload) Offset() int64

Returns the current upload offset.

func (*Upload) Progress

func (u *Upload) Progress() int64

Returns the progress in a percentage.

func (*Upload) Size

func (u *Upload) Size() int64

Returns the size of the upload body.

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) Do

func (c *UploadClient) Do(req *http.Request) (*http.Response, error)

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) IsAborted

func (u *Uploader) IsAborted() bool

IsAborted returns true if the upload was aborted.

func (*Uploader) NotifyUploadProgress

func (u *Uploader) NotifyUploadProgress(c chan Upload)

Subscribes to progress updates.

func (*Uploader) Offset

func (u *Uploader) Offset() int64

Offset returns the current offset uploaded.

func (*Uploader) Upload

func (u *Uploader) Upload() error

Upload uploads the entire body to the server.

func (*Uploader) UploadChunck

func (u *Uploader) UploadChunck() error

UploadChunck uploads a single chunck.

func (*Uploader) Url

func (u *Uploader) Url() string

Url returns the upload url.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL