Documentation ¶
Overview ¶
Package backend provides local and remote storage for restic repositories. All backends need to implement the Backend interface. There is a MemBackend, which stores all data in a map internally and can be used for testing.
Index ¶
- Variables
- func LoadAll(ctx context.Context, be restic.Backend, h restic.Handle) (buf []byte, err error)
- func Transport() http.RoundTripper
- type DefaultLayout
- type Filesystem
- type Layout
- type LimitedReadCloser
- type LocalFilesystem
- type RESTLayout
- type S3LegacyLayout
- func (l *S3LegacyLayout) Basedir(t restic.FileType) string
- func (l *S3LegacyLayout) Dirname(h restic.Handle) string
- func (l *S3LegacyLayout) Filename(h restic.Handle) string
- func (l *S3LegacyLayout) Name() string
- func (l *S3LegacyLayout) Paths() (dirs []string)
- func (l *S3LegacyLayout) String() string
- type Semaphore
Constants ¶
This section is empty.
Variables ¶
var ErrLayoutDetectionFailed = errors.New("auto-detecting the filesystem layout failed")
ErrLayoutDetectionFailed is returned by DetectLayout() when the layout cannot be detected automatically.
var Modes = struct{ Dir, File os.FileMode }{0700, 0600}
Modes holds the default modes for directories and files for file-based backends.
var Paths = struct { Data string Snapshots string Index string Locks string Keys string Temp string Config string }{ "data", "snapshots", "index", "locks", "keys", "tmp", "config", }
Paths contains the default paths for file-based backends (e.g. local).
Functions ¶
func Transport ¶
func Transport() http.RoundTripper
Transport returns a new http.RoundTripper with default settings applied.
Types ¶
type DefaultLayout ¶
DefaultLayout implements the default layout for local and sftp backends, as described in the Design document. The `data` directory has one level of subdirs, two characters each (taken from the first two characters of the file name).
func (*DefaultLayout) Basedir ¶
func (l *DefaultLayout) Basedir(t restic.FileType) string
Basedir returns the base dir name for type t.
func (*DefaultLayout) Dirname ¶
func (l *DefaultLayout) Dirname(h restic.Handle) string
Dirname returns the directory path for a given file type and name.
func (*DefaultLayout) Filename ¶
func (l *DefaultLayout) Filename(h restic.Handle) string
Filename returns a path to a file, including its name.
func (*DefaultLayout) Name ¶
func (l *DefaultLayout) Name() string
Name returns the name for this layout.
func (*DefaultLayout) Paths ¶
func (l *DefaultLayout) Paths() (dirs []string)
Paths returns all directory names needed for a repo.
func (*DefaultLayout) String ¶
func (l *DefaultLayout) String() string
type Filesystem ¶
type Filesystem interface { Join(...string) string ReadDir(string) ([]os.FileInfo, error) IsNotExist(error) bool }
Filesystem is the abstraction of a file system used for a backend.
type Layout ¶
type Layout interface { Filename(restic.Handle) string Dirname(restic.Handle) string Basedir(restic.FileType) string Paths() []string Name() string }
Layout computes paths for file name storage.
func DetectLayout ¶
func DetectLayout(repo Filesystem, dir string) (Layout, error)
DetectLayout tries to find out which layout is used in a local (or sftp) filesystem at the given path. If repo is nil, an instance of LocalFilesystem is used.
func ParseLayout ¶
func ParseLayout(repo Filesystem, layout, defaultLayout, path string) (l Layout, err error)
ParseLayout parses the config string and returns a Layout. When layout is the empty string, DetectLayout is used. If that fails, defaultLayout is used.
type LimitedReadCloser ¶
type LimitedReadCloser struct { io.ReadCloser io.Reader }
LimitedReadCloser wraps io.LimitedReader and exposes the Close() method.
func LimitReadCloser ¶
func LimitReadCloser(r io.ReadCloser, n int64) *LimitedReadCloser
LimitReadCloser returns a new reader wraps r in an io.LimitReader, but also exposes the Close() method.
type LocalFilesystem ¶
type LocalFilesystem struct { }
LocalFilesystem implements Filesystem in a local path.
func (*LocalFilesystem) IsNotExist ¶
func (l *LocalFilesystem) IsNotExist(err error) bool
IsNotExist returns true for errors that are caused by not existing files.
func (*LocalFilesystem) Join ¶
func (l *LocalFilesystem) Join(paths ...string) string
Join combines several path components to one.
type RESTLayout ¶
RESTLayout implements the default layout for the REST protocol.
func (*RESTLayout) Basedir ¶
func (l *RESTLayout) Basedir(t restic.FileType) string
Basedir returns the base dir name for files of type t.
func (*RESTLayout) Dirname ¶
func (l *RESTLayout) Dirname(h restic.Handle) string
Dirname returns the directory path for a given file type and name.
func (*RESTLayout) Filename ¶
func (l *RESTLayout) Filename(h restic.Handle) string
Filename returns a path to a file, including its name.
func (*RESTLayout) Paths ¶
func (l *RESTLayout) Paths() (dirs []string)
Paths returns all directory names
func (*RESTLayout) String ¶
func (l *RESTLayout) String() string
type S3LegacyLayout ¶
S3LegacyLayout implements the old layout used for s3 cloud storage backends, as described in the Design document.
func (*S3LegacyLayout) Basedir ¶
func (l *S3LegacyLayout) Basedir(t restic.FileType) string
Basedir returns the base dir name for type t.
func (*S3LegacyLayout) Dirname ¶
func (l *S3LegacyLayout) Dirname(h restic.Handle) string
Dirname returns the directory path for a given file type and name.
func (*S3LegacyLayout) Filename ¶
func (l *S3LegacyLayout) Filename(h restic.Handle) string
Filename returns a path to a file, including its name.
func (*S3LegacyLayout) Name ¶
func (l *S3LegacyLayout) Name() string
Name returns the name for this layout.
func (*S3LegacyLayout) Paths ¶
func (l *S3LegacyLayout) Paths() (dirs []string)
Paths returns all directory names
func (*S3LegacyLayout) String ¶
func (l *S3LegacyLayout) String() string
type Semaphore ¶
type Semaphore struct {
// contains filtered or unexported fields
}
Semaphore limits access to a restricted resource.
func NewSemaphore ¶
NewSemaphore returns a new semaphore with capacity n.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package local implements repository storage in a local directory.
|
Package local implements repository storage in a local directory. |
Package location implements parsing the restic repository location from a string.
|
Package location implements parsing the restic repository location from a string. |
Package sftp implements repository storage in a directory on a remote server via the sftp protocol.
|
Package sftp implements repository storage in a directory on a remote server via the sftp protocol. |
Package test contains a test suite with benchmarks for restic backends.
|
Package test contains a test suite with benchmarks for restic backends. |