cloudbackup

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2024 License: AGPL-3.0 Imports: 39 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	BackupTasks = param.NewMap()
)
View Source
var ErrEmptyConfig = errors.New(`empty config`)
View Source
var ErrUnsupported = errors.New(`unsupported storage engine`)
View Source
var Forms = map[string][]Form{}
View Source
var (
	LevelDBDir = `data/cache/backup-db`
)

Functions

func DownloadFile

func DownloadFile(s Storager, ctx context.Context, ppath string, dest string) error

func FileChan

func FileChan() chan *PutFile

func HasForm

func HasForm(engineName string, formName string) bool

func LevelDB

func LevelDB() *dbPool

func MonitorBackupStop

func MonitorBackupStop(id uint) error

func NewLevelDBPool

func NewLevelDBPool() *dbPool

func ParseDBValue

func ParseDBValue(val []byte) (md5 string, startTs, endTs, fileModifyTs, fileSize int64)

func RecordLog

func RecordLog(ctx echo.Context, err error, cfg *dbschema.NgingCloudBackup,
	filePath string, remotePath string, operation string,
	startTime time.Time, size uint64, backupType ...string)

func Register

func Register(name string, constructor Constructor, forms []Form, label string)

func ResetFileChan

func ResetFileChan()

func Restore

func Restore(ctx echo.Context, cfg dbschema.NgingCloudBackup, callback func(from, to string), prog notice.Progressor) error

func RetryablePut

func RetryablePut(ctx context.Context, mgr Storager, fp io.ReadSeekCloser, objectName string, size int64) error

Types

type Cloudbackup

type Cloudbackup struct {
	SourcePath string
	DestPath   string
	Filter     func(string) bool

	WaitFillCompleted bool
	IgnoreWaitRegexp  *regexp.Regexp
	// contains filtered or unexported fields
}

func New

func (*Cloudbackup) OnCreate

func (c *Cloudbackup) OnCreate(file string)

func (*Cloudbackup) OnDelete

func (c *Cloudbackup) OnDelete(file string)

func (*Cloudbackup) OnModify

func (c *Cloudbackup) OnModify(file string)

func (*Cloudbackup) OnRename

func (c *Cloudbackup) OnRename(file string)

type Constructor

type Constructor func(ctx echo.Context, cfg dbschema.NgingCloudBackup) (Storager, error)

type ErrIsAccessDenied

type ErrIsAccessDenied interface {
	ErrIsAccessDenied(error) bool
}

type Form

type Form struct {
	Type        string
	Label       string
	Name        string
	Required    bool
	Pattern     string
	Placeholder string
}

type ProgressorSetter

type ProgressorSetter interface {
	SetProgressor(notice.Progressor)
}

type PutFile

type PutFile struct {
	Manager           Storager
	Config            dbschema.NgingCloudBackup
	ObjectName        string
	FilePath          string
	Operation         string
	WaitFillCompleted bool
}

func (*PutFile) Do

func (mf *PutFile) Do(ctx context.Context) (size int64, lastModtime time.Time, err error)

type StorageFTP

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

func (*StorageFTP) Close

func (s *StorageFTP) Close() (err error)

func (*StorageFTP) Connect

func (s *StorageFTP) Connect() (err error)

func (*StorageFTP) Download

func (s *StorageFTP) Download(ctx context.Context, ppath string, w io.Writer) error

func (*StorageFTP) MkdirAll

func (s *StorageFTP) MkdirAll(dir string) (err error)

func (*StorageFTP) Put

func (s *StorageFTP) Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)

func (*StorageFTP) Remove

func (s *StorageFTP) Remove(ctx context.Context, ppath string) error

func (*StorageFTP) RemoveDir

func (s *StorageFTP) RemoveDir(ctx context.Context, ppath string) error

func (*StorageFTP) Restore

func (s *StorageFTP) Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error

func (*StorageFTP) SetProgressor

func (s *StorageFTP) SetProgressor(prog notice.Progressor)

type StorageMock

type StorageMock struct {
}

func (*StorageMock) Close

func (s *StorageMock) Close() (err error)

func (*StorageMock) Connect

func (s *StorageMock) Connect() (err error)

func (*StorageMock) Download

func (s *StorageMock) Download(ctx context.Context, ppath string, w io.Writer) error

func (*StorageMock) Put

func (s *StorageMock) Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)

func (*StorageMock) Remove

func (s *StorageMock) Remove(ctx context.Context, ppath string) error

func (*StorageMock) RemoveDir

func (s *StorageMock) RemoveDir(ctx context.Context, ppath string) error

func (*StorageMock) Restore

func (s *StorageMock) Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error

type StorageS3

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

func (*StorageS3) Close

func (s *StorageS3) Close() (err error)

func (*StorageS3) Connect

func (s *StorageS3) Connect() (err error)

func (*StorageS3) Download

func (s *StorageS3) Download(ctx context.Context, ppath string, w io.Writer) error

func (*StorageS3) Put

func (s *StorageS3) Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)

func (*StorageS3) Remove

func (s *StorageS3) Remove(ctx context.Context, ppath string) error

func (*StorageS3) RemoveDir

func (s *StorageS3) RemoveDir(ctx context.Context, ppath string) error

func (*StorageS3) Restore

func (s *StorageS3) Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error

func (*StorageS3) SetProgressor

func (s *StorageS3) SetProgressor(prog notice.Progressor)

type StorageSMB

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

func (*StorageSMB) Close

func (s *StorageSMB) Close() (err error)

func (*StorageSMB) Connect

func (s *StorageSMB) Connect() (err error)

func (*StorageSMB) Download

func (s *StorageSMB) Download(ctx context.Context, ppath string, w io.Writer) error

func (*StorageSMB) Put

func (s *StorageSMB) Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)

func (*StorageSMB) Remove

func (s *StorageSMB) Remove(ctx context.Context, ppath string) error

func (*StorageSMB) RemoveDir

func (s *StorageSMB) RemoveDir(ctx context.Context, ppath string) error

func (*StorageSMB) Restore

func (s *StorageSMB) Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error

func (*StorageSMB) SetProgressor

func (s *StorageSMB) SetProgressor(prog notice.Progressor)

type StorageWebDAV

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

func (*StorageWebDAV) Close

func (s *StorageWebDAV) Close() (err error)

func (*StorageWebDAV) Connect

func (s *StorageWebDAV) Connect() (err error)

func (*StorageWebDAV) Download

func (s *StorageWebDAV) Download(ctx context.Context, ppath string, w io.Writer) error

func (*StorageWebDAV) Put

func (s *StorageWebDAV) Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)

func (*StorageWebDAV) Remove

func (s *StorageWebDAV) Remove(ctx context.Context, ppath string) error

func (*StorageWebDAV) RemoveDir

func (s *StorageWebDAV) RemoveDir(ctx context.Context, ppath string) error

func (*StorageWebDAV) Restore

func (s *StorageWebDAV) Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error

func (*StorageWebDAV) SetProgressor

func (s *StorageWebDAV) SetProgressor(prog notice.Progressor)

type Storager

type Storager interface {
	Connect() (err error)
	Put(ctx context.Context, reader io.Reader, ppath string, size int64) (err error)
	Download(ctx context.Context, ppath string, w io.Writer) error
	RemoveDir(ctx context.Context, ppath string) error
	Remove(ctx context.Context, ppath string) error
	Restore(ctx context.Context, ppath string, destpath string, callback func(from, to string)) error
	Close() (err error)
}

func NewStorage

func NewStorage(ctx echo.Context, cfg dbschema.NgingCloudBackup) (Storager, error)

func NewStorageFTP

func NewStorageFTP(addr, username, password string) Storager

func NewStorageMock

func NewStorageMock() Storager

func NewStorageS3

func NewStorageS3(cfg dbschema.NgingCloudStorage) Storager

func NewStorageSMB

func NewStorageSMB(addr, username, password, sharename string) Storager

func NewStorageWebDAV

func NewStorageWebDAV(uri, username, password string) Storager

type Task

type Task struct {
	Monitor  *com.MonitorEvent
	Storager Storager
}

func NewTask

func NewTask(monitor *com.MonitorEvent, storager Storager) *Task

func (*Task) Close

func (t *Task) Close()

Jump to

Keyboard shortcuts

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