mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-11 14:53:49 +00:00
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
|
package common
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// OriginFS is an interface for remote origin filesystem.
|
||
|
//
|
||
|
// This filesystem is used for performing server-side file copies
|
||
|
// instead of uploading data from local filesystem.
|
||
|
type OriginFS interface {
|
||
|
// String must return human-readable representation of OriginFS.
|
||
|
String() string
|
||
|
|
||
|
// ListParts must return all the parts for the OriginFS.
|
||
|
ListParts() ([]Part, error)
|
||
|
}
|
||
|
|
||
|
// RemoteFS is a filesystem where backups are stored.
|
||
|
type RemoteFS interface {
|
||
|
// String must return human-readable representation of RemoteFS.
|
||
|
String() string
|
||
|
|
||
|
// ListParts must return all the parts for the RemoteFS.
|
||
|
ListParts() ([]Part, error)
|
||
|
|
||
|
// DeletePart must delete part p from RemoteFS.
|
||
|
DeletePart(p Part) error
|
||
|
|
||
|
// RemoveEmptyDirs must recursively remove empty directories in RemoteFS.
|
||
|
RemoveEmptyDirs() error
|
||
|
|
||
|
// CopyPart must copy part p from dstFS to RemoteFS.
|
||
|
CopyPart(dstFS OriginFS, p Part) error
|
||
|
|
||
|
// DownloadPart must download part p from RemoteFS to w.
|
||
|
DownloadPart(p Part, w io.Writer) error
|
||
|
|
||
|
// UploadPart must upload part p from r to RemoteFS.
|
||
|
UploadPart(p Part, r io.Reader) error
|
||
|
}
|