utils

package
v3.21.0 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2023 License: AGPL-3.0 Imports: 27 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DEC = map[string]string{
	"-": "+",
	"_": "/",
	".": "=",
}
View Source
var Log = log.New()

Functions

func ClientIP

func ClientIP(r *http.Request) string

func CopyDir

func CopyDir(src, dst string) error

CopyDir Dir copies a whole directory recursively

func CopyFile

func CopyFile(src, dst string) error

CopyFile File copies a single file from src to dst

func CopyWithCtx

func CopyWithCtx(ctx context.Context, out io.Writer, in io.Reader, size int64, progress func(percentage int)) error

CopyWithCtx slightly modified function signature: - context has been added in order to propagate cancelation - I do not return the number of bytes written, has it is not useful in my use case

func CreateNestedDirectory added in v3.11.0

func CreateNestedDirectory(path string) error

CreateNestedDirectory create nested directory

func CreateNestedFile

func CreateNestedFile(path string) (*os.File, error)

CreateNestedFile create nested file

func CreateTempFile

func CreateTempFile(r io.ReadCloser) (*os.File, error)

CreateTempFile create temp file from io.ReadCloser, and seek to 0

func EncodePath

func EncodePath(path string, all ...bool) string

func Exists

func Exists(name string) bool

Exists determine whether the file exists

func Ext

func Ext(path string) string

func FixAndCleanPath added in v3.7.1

func FixAndCleanPath(path string) string

FixAndCleanPath The upper layer of the root directory is still the root directory. So ".." And "." will be cleared for example 1. ".." or "." => "/" 2. "../..." or "./..." => "/..." 3. "../.x." or "./.x." => "/.x." 4. "x//\\y" = > "/z/x"

func GetActualMountPath added in v3.7.1

func GetActualMountPath(mountPath string) string

GetActualMountPath remove balance suffix

func GetFileType

func GetFileType(filename string) int

GetFileType get file type

func GetFullPath added in v3.9.0

func GetFullPath(mountPath, path string) string

func GetMD5Encode

func GetMD5Encode(data string) string

func GetMimeType added in v3.2.0

func GetMimeType(name string) string

func GetObjType added in v3.6.0

func GetObjType(filename string, isDir bool) int

func GetSHA1Encode

func GetSHA1Encode(data string) string

func GetSHA256Encode added in v3.11.0

func GetSHA256Encode(data string) string

func InjectQuery added in v3.12.0

func InjectQuery(raw string, query url.Values) (string, error)

func IsBalance

func IsBalance(str string) bool

func IsBool added in v3.7.1

func IsBool(bs ...bool) bool

func IsCanceled

func IsCanceled(ctx context.Context) bool

func IsEmailFormat added in v3.4.0

func IsEmailFormat(email string) bool

func IsLocalIP

func IsLocalIP(ip net.IP) bool

func IsLocalIPAddr

func IsLocalIPAddr(ip string) bool

func IsSubPath added in v3.7.1

func IsSubPath(path string, subPath string) bool

func JoinBasePath added in v3.6.0

func JoinBasePath(basePath, reqPath string) (string, error)

func LimitRateReflect added in v3.17.0

func LimitRateReflect(f interface{}, interval time.Duration) func(...interface{}) []interface{}

func LimitWriter

func LimitWriter(w io.Writer, size int64) io.Writer

func MappingName added in v3.5.1

func MappingName(name string) string

func MergeErrors added in v3.7.1

func MergeErrors(errs ...error) error

func MergeMap

func MergeMap(mObj ...map[string]interface{}) map[string]interface{}

func MustParseCNTime added in v3.4.0

func MustParseCNTime(str string) time.Time

func MustSliceConvert added in v3.6.0

func MustSliceConvert[S any, D any](srcS []S, convert func(src S) D) []D

func NewDebounce added in v3.9.0

func NewDebounce(interval time.Duration) func(f func())

func NewDebounce2 added in v3.9.0

func NewDebounce2(interval time.Duration, f func()) func()

func NewLimitReadCloser added in v3.12.0

func NewLimitReadCloser(reader io.Reader, close CloseFunc, limit int64) io.ReadCloser

func NewReadCloser added in v3.12.0

func NewReadCloser(reader io.Reader, close CloseFunc) io.ReadCloser

func PathAddSeparatorSuffix added in v3.7.1

func PathAddSeparatorSuffix(path string) string

PathAddSeparatorSuffix Add path '/' suffix for example /root => /root/

func PathEqual

func PathEqual(path1, path2 string) bool

PathEqual judge path is equal

func SafeAtob

func SafeAtob(data string) (string, error)

func SliceContains

func SliceContains[T comparable](arr []T, v T) bool

SliceContains check if slice contains element

func SliceConvert

func SliceConvert[S any, D any](srcS []S, convert func(src S) (D, error)) ([]D, error)

SliceConvert convert slice to another type slice

func SliceEqual

func SliceEqual[T comparable](a, b []T) bool

SliceEqual check if two slices are equal

func SliceMeet added in v3.20.0

func SliceMeet[T1, T2 any](arr []T1, v T2, meet func(item T1, v T2) bool) bool

func SymlinkOrCopyFile added in v3.11.0

func SymlinkOrCopyFile(src, dst string) error

SymlinkOrCopyFile symlinks a file or copy if symlink failed

func WriteJsonToFile

func WriteJsonToFile(dst string, data interface{}, std ...bool) bool

WriteJsonToFile write struct to json file

Types

type CloseFunc added in v3.12.0

type CloseFunc func() error

func (CloseFunc) Close added in v3.12.0

func (c CloseFunc) Close() error

type Fn added in v3.17.0

type Fn[T any, R any] func(T) (R, error)

func LimitRate added in v3.17.0

func LimitRate[T any, R any](f Fn[T, R], interval time.Duration) Fn[T, R]

type FnCtx added in v3.17.0

type FnCtx[T any, R any] func(context.Context, T) (R, error)

func LimitRateCtx added in v3.17.0

func LimitRateCtx[T any, R any](f FnCtx[T, R], interval time.Duration) FnCtx[T, R]

type MultiReadable added in v3.15.1

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

func NewMultiReadable added in v3.15.1

func NewMultiReadable(reader io.Reader) *MultiReadable

func (*MultiReadable) Close added in v3.15.1

func (mr *MultiReadable) Close() error

func (*MultiReadable) Read added in v3.15.1

func (mr *MultiReadable) Read(p []byte) (int, error)

func (*MultiReadable) Reset added in v3.15.1

func (mr *MultiReadable) Reset() error

type ReadCloser added in v3.12.0

type ReadCloser struct {
	io.Reader
	io.Closer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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