ulfs

package
v1.45.5-rc Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2021 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Filesystem

type Filesystem interface {
	Close() error
	Open(ctx clingy.Context, loc ulloc.Location, opts *OpenOptions) (ReadHandle, error)
	Create(ctx clingy.Context, loc ulloc.Location) (WriteHandle, error)
	Move(ctx clingy.Context, source, dest ulloc.Location) error
	Remove(ctx context.Context, loc ulloc.Location, opts *RemoveOptions) error
	List(ctx context.Context, prefix ulloc.Location, opts *ListOptions) (ObjectIterator, error)
	IsLocalDir(ctx context.Context, loc ulloc.Location) bool
	Stat(ctx context.Context, loc ulloc.Location) (*ObjectInfo, error)
}

Filesystem represents either the local Filesystem or the data backed by a project.

type ListOptions added in v1.42.2

type ListOptions struct {
	Recursive bool
	Pending   bool
	Expanded  bool
}

ListOptions describes options to the List command.

type Local

type Local struct{}

Local implements something close to a filesystem but backed by the local disk.

func NewLocal

func NewLocal() *Local

NewLocal constructs a Local filesystem.

func (*Local) Create

func (l *Local) Create(ctx context.Context, path string) (WriteHandle, error)

Create makes any directories necessary to create a file at path and returns a WriteHandle.

func (*Local) IsLocalDir

func (l *Local) IsLocalDir(ctx context.Context, path string) bool

IsLocalDir returns true if the path is a directory.

func (*Local) List added in v1.42.2

func (l *Local) List(ctx context.Context, path string, opts *ListOptions) (ObjectIterator, error)

List returns an ObjectIterator listing files and directories that have string prefix with the provided path.

func (*Local) Move added in v1.44.1

func (l *Local) Move(ctx context.Context, oldpath, newpath string) error

Move moves file to provided path.

func (*Local) Open

func (l *Local) Open(ctx context.Context, path string, opts *OpenOptions) (ReadHandle, error)

Open returns a read ReadHandle for the given local path.

func (*Local) Remove

func (l *Local) Remove(ctx context.Context, path string, opts *RemoveOptions) error

Remove unlinks the file at the path. It is not an error if the file does not exist.

func (*Local) Stat added in v1.43.1

func (l *Local) Stat(ctx context.Context, path string) (*ObjectInfo, error)

Stat returns an ObjectInfo describing the provided path.

type Mixed

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

Mixed dispatches to either the local or remote filesystem depending on the location.

func NewMixed

func NewMixed(local *Local, remote *Remote) *Mixed

NewMixed returns a Mixed backed by the provided local and remote filesystems.

func (*Mixed) Close

func (m *Mixed) Close() error

Close releases any resources that the Mixed contails.

func (*Mixed) Create

func (m *Mixed) Create(ctx clingy.Context, loc ulloc.Location) (WriteHandle, error)

Create returns a WriteHandle to either a local file, remote object, or stdout.

func (*Mixed) IsLocalDir

func (m *Mixed) IsLocalDir(ctx context.Context, loc ulloc.Location) bool

IsLocalDir returns true if the location is a directory that is local.

func (*Mixed) List added in v1.42.2

func (m *Mixed) List(ctx context.Context, prefix ulloc.Location, opts *ListOptions) (ObjectIterator, error)

List lists either files and directories with some local path prefix or remote objects with a given bucket and key.

func (*Mixed) Move added in v1.44.1

func (m *Mixed) Move(ctx clingy.Context, source, dest ulloc.Location) error

Move moves either a local file or remote object.

func (*Mixed) Open

func (m *Mixed) Open(ctx clingy.Context, loc ulloc.Location, opts *OpenOptions) (ReadHandle, error)

Open returns a ReadHandle to either a local file, remote object, or stdin.

func (*Mixed) Remove

func (m *Mixed) Remove(ctx context.Context, loc ulloc.Location, opts *RemoveOptions) error

Remove deletes either a local file or remote object.

func (*Mixed) Stat added in v1.43.1

func (m *Mixed) Stat(ctx context.Context, loc ulloc.Location) (*ObjectInfo, error)

Stat returns information about an object at the specified Location.

type ObjectInfo

type ObjectInfo struct {
	Loc           ulloc.Location
	IsPrefix      bool
	Created       time.Time
	ContentLength int64
	Expires       time.Time
	Metadata      uplink.CustomMetadata
}

ObjectInfo is a simpler *uplink.Object that contains the minimal information the uplink command needs that multiple types can be converted to.

type ObjectIterator

type ObjectIterator interface {
	Next() bool
	Err() error
	Item() ObjectInfo
}

ObjectIterator is an interface type for iterating over objectInfo values.

type OpenOptions added in v1.43.1

type OpenOptions struct {
	Offset int64
	Length int64
}

OpenOptions describes options for Filesystem.Open.

type ReadHandle

type ReadHandle interface {
	io.Reader
	io.Closer
	Info() ObjectInfo
}

ReadHandle is something that can be read from.

type Remote

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

Remote implements something close to a filesystem but backed by an uplink project.

func NewRemote

func NewRemote(project *uplink.Project) *Remote

NewRemote returns something close to a filesystem and returns objects using the project.

func (*Remote) Close

func (r *Remote) Close() error

Close releases any resources that the Remote contains.

func (*Remote) Create

func (r *Remote) Create(ctx context.Context, bucket, key string) (WriteHandle, error)

Create returns a WriteHandle for the object identified by a given bucket and key.

func (*Remote) List added in v1.42.2

func (r *Remote) List(ctx context.Context, bucket, prefix string, opts *ListOptions) ObjectIterator

List lists all of the objects in some bucket that begin with the given prefix.

func (*Remote) Move added in v1.44.1

func (r *Remote) Move(ctx context.Context, oldbucket, oldkey, newbucket, newkey string) error

Move moves object to provided key and bucket.

func (*Remote) Open

func (r *Remote) Open(ctx context.Context, bucket, key string, opts *OpenOptions) (ReadHandle, error)

Open returns a ReadHandle for the object identified by a given bucket and key.

func (*Remote) Remove

func (r *Remote) Remove(ctx context.Context, bucket, key string, opts *RemoveOptions) error

Remove deletes the object at the provided key and bucket.

func (*Remote) Stat added in v1.43.1

func (r *Remote) Stat(ctx context.Context, bucket, key string) (*ObjectInfo, error)

Stat returns information about an object at the specified key.

type RemoveOptions added in v1.42.2

type RemoveOptions struct {
	Pending bool
}

RemoveOptions describes options to the Remove command.

type WriteHandle

type WriteHandle interface {
	io.Writer
	Commit() error
	Abort() error
}

WriteHandle is anything that can be written to with commit/abort semantics.

Jump to

Keyboard shortcuts

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