goup

package module
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2025 License: MIT Imports: 20 Imported by: 0

README

goup

HTTP upload handler. For specification,see 中文版使用说明 (Chinese).

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLimitExceeded = errors.New("read limit exceeded")

Functions

func LimitedReader added in v1.6.0

func LimitedReader(r io.Reader, n int64) io.ReadCloser

Types

type AfterUpload added in v1.1.0

type AfterUpload func(string, *Reply, http.ResponseWriter) *Reply

type BeforeUpload added in v1.1.0

type BeforeUpload func(*string, *http.Request) error

type Config

type Config struct {
	Queue string `yaml:"queue" abs:"true"` //temp dir for chunks
	Store string `yaml:"store" abs:"true"` //final file directory

	Limit int64 `yaml:"limit"`    //max upload size in byte
	Chunk int64 `yaml:"chunk"`    //max size of a single chunk (0 means not limited)
	Conns int64 `yaml:"conns"`    //concurrent uploads limit for a single session
	CORS  bool  `yaml:"cors"`     //cross-origin resource sharing
	Iso   bool  `yaml:"isolated"` //files stored in subdirs named after uploader's token
	Check bool  `yaml:"check"`    //if enabled, client must provide md5 for each chunk
	// contains filtered or unexported fields
}

type Handler added in v1.4.1

type Handler struct {
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(cfg *Config) (uh *Handler, err error)

func (*Handler) OnAfterUpload added in v1.4.1

func (uh *Handler) OnAfterUpload(done AfterUpload) *Handler

func (*Handler) OnBeforeUpload added in v1.4.1

func (uh *Handler) OnBeforeUpload(auth BeforeUpload) *Handler

func (Handler) ServeHTTP added in v1.4.1

func (uh Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*Handler) WithLogger added in v1.4.1

func (uh *Handler) WithLogger(l Logger) *Handler

type Logger

type Logger = func(string, ...any)

type Reply added in v1.1.0

type Reply struct {
	Data any    `json:"data,omitempty"`
	Mesg string `json:"mesg"`
	Code int    `json:"code"`
}

func (Reply) Emit added in v1.1.0

func (r Reply) Emit(w http.ResponseWriter)

func (Reply) Error added in v1.1.0

func (r Reply) Error() string

func (Reply) OK added in v1.1.0

func (r Reply) OK() bool

Jump to

Keyboard shortcuts

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