storage

package
v0.0.0-...-8027ee6 Latest Latest
Warning

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

Go to latest
Published: May 7, 2023 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const SizeAll = -1

Variables

View Source
var SampleConfig = []string{
	"sftp://username:password@hostname?key=key",
	"s3://accessKey:secret@s3.eu-central-1.amazonaws.com/bucket",
	"file://path",
}

Functions

func CopyFile

func CopyFile(dest Storage, destName string, source Storage, sourceName string) error

func LockFile

func LockFile(e Storage, name string, span time.Duration) (uint64, error)

func ReadFile

func ReadFile(e Storage, name string) ([]byte, error)

func ReadJSON

func ReadJSON(e Storage, name string, v any, hash hash.Hash) error

func UnlockFile

func UnlockFile(e Storage, name string, id uint64)

func WriteFile

func WriteFile(e Storage, name string, data []byte) error

func WriteJSON

func WriteJSON(e Storage, name string, v any, hash hash.Hash) error

Types

type Firebase

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

func (*Firebase) Close

func (l *Firebase) Close() error

func (*Firebase) Delete

func (l *Firebase) Delete(name string) error

func (*Firebase) GetCheckpoint

func (l *Firebase) GetCheckpoint(name string) int64

func (*Firebase) Read

func (l *Firebase) Read(name string, rang *Range, dest io.Writer, progress chan int64) error

func (*Firebase) ReadDir

func (l *Firebase) ReadDir(dir string, opts ListOption) ([]fs.FileInfo, error)

func (*Firebase) Rename

func (l *Firebase) Rename(old, new string) error

func (*Firebase) SetCheckpoint

func (l *Firebase) SetCheckpoint(name string) (int64, error)

func (*Firebase) Stat

func (l *Firebase) Stat(name string) (os.FileInfo, error)

func (*Firebase) String

func (l *Firebase) String() string

func (*Firebase) Write

func (l *Firebase) Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

type FirebaseConfig

type FirebaseConfig struct {
	Base string `json:"base" yaml:"base"`
}

type ListOption

type ListOption uint32
const (
	// IncludeHiddenFiles includes hidden files in a list operation
	IncludeHiddenFiles ListOption = 1
)

type Local

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

func (*Local) Close

func (l *Local) Close() error

func (*Local) Delete

func (l *Local) Delete(name string) error

func (*Local) GetCheckpoint

func (l *Local) GetCheckpoint(name string) int64

func (*Local) Read

func (l *Local) Read(name string, rang *Range, dest io.Writer, progress chan int64) error

func (*Local) ReadDir

func (l *Local) ReadDir(dir string, opts ListOption) ([]fs.FileInfo, error)

func (*Local) Rename

func (l *Local) Rename(old, new string) error

func (*Local) SetCheckpoint

func (l *Local) SetCheckpoint(name string) (int64, error)

func (*Local) Stat

func (l *Local) Stat(name string) (os.FileInfo, error)

func (*Local) String

func (l *Local) String() string

func (*Local) Write

func (l *Local) Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

type LocalConfig

type LocalConfig struct {
	Base string `json:"base" yaml:"base"`
}

type Range

type Range struct {
	From int64
	To   int64
}

type S3

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

func (*S3) Close

func (s *S3) Close() error

func (*S3) Delete

func (s *S3) Delete(name string) error

func (*S3) GetCheckpoint

func (s *S3) GetCheckpoint(name string) int64

func (*S3) Read

func (s *S3) Read(name string, rang *Range, dest io.Writer, progress chan int64) error

func (*S3) ReadDir

func (s *S3) ReadDir(dir string, opts ListOption) ([]fs.FileInfo, error)

func (*S3) Rename

func (s *S3) Rename(old, new string) error

func (*S3) SetCheckpoint

func (s *S3) SetCheckpoint(name string) (int64, error)

func (*S3) Stat

func (s *S3) Stat(name string) (fs.FileInfo, error)

func (*S3) String

func (s *S3) String() string

func (*S3) Write

func (s *S3) Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

type SFTP

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

func (*SFTP) Close

func (s *SFTP) Close() error

func (*SFTP) Delete

func (s *SFTP) Delete(name string) error

func (*SFTP) GetCheckpoint

func (s *SFTP) GetCheckpoint(name string) int64

func (*SFTP) Read

func (s *SFTP) Read(name string, rang *Range, dest io.Writer, progress chan int64) error

func (*SFTP) ReadDir

func (s *SFTP) ReadDir(dir string, opts ListOption) ([]fs.FileInfo, error)

func (*SFTP) Rename

func (s *SFTP) Rename(old, new string) error

func (*SFTP) SetCheckpoint

func (s *SFTP) SetCheckpoint(name string) (int64, error)

func (*SFTP) Stat

func (s *SFTP) Stat(name string) (os.FileInfo, error)

func (*SFTP) String

func (s *SFTP) String() string

func (*SFTP) Write

func (s *SFTP) Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

type Source

type Source struct {
	Name   string
	Data   []byte
	Reader io.Reader
	Size   int64
}

type Storage

type Storage interface {
	// Read reads data from a file into a writer
	Read(name string, rang *Range, dest io.Writer, progress chan int64) error

	// Write writes data to a file name. An existing file is overwritten
	Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

	//ReadDir returns the entries of a folder content
	ReadDir(name string, opts ListOption) ([]fs.FileInfo, error)

	// Stat provides statistics about a file
	Stat(name string) (os.FileInfo, error)

	// Rename a file. Overwrite an existing file if present
	Rename(old, new string) error

	// Delete deletes a file
	Delete(name string) error

	// Close releases resources
	Close() error

	// String returns a human-readable representation of the storer (e.g. sftp://user@host.cc/path)
	String() string
}

Storage is a low level interface to storage services such as S3 or SFTP

func NewFirebase

func NewFirebase(connectionUrl string) (Storage, error)

func OpenLocal

func OpenLocal(connectionUrl string) (Storage, error)

func OpenS3

func OpenS3(connectionUrl string) (Storage, error)

func OpenSFTP

func OpenSFTP(connectionUrl string) (Storage, error)

OpenSFTP create a new Exchanger. The url is in the format sftp://

func OpenStorage

func OpenStorage(connectionUrl string) (Storage, error)

OpenStorage creates a new exchanger giving a provided configuration

func OpenWebDAV

func OpenWebDAV(connectionUrl string) (Storage, error)

type WebDAV

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

func (*WebDAV) Close

func (w *WebDAV) Close() error

func (*WebDAV) Delete

func (w *WebDAV) Delete(name string) error

func (*WebDAV) Read

func (w *WebDAV) Read(name string, rang *Range, dest io.Writer, progress chan int64) error

func (*WebDAV) ReadDir

func (w *WebDAV) ReadDir(dir string, opts ListOption) ([]fs.FileInfo, error)

func (*WebDAV) Rename

func (w *WebDAV) Rename(old, new string) error

func (*WebDAV) Stat

func (w *WebDAV) Stat(name string) (fs.FileInfo, error)

func (*WebDAV) String

func (w *WebDAV) String() string

func (*WebDAV) Write

func (w *WebDAV) Write(name string, source io.ReadSeeker, size int64, progress chan int64) error

Jump to

Keyboard shortcuts

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