tree

package
v2.15.0 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2023 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Blobstore

type Blobstore interface {
	Upload(node *node.Node, source string) error
	Download(node *node.Node) (io.ReadCloser, error)
	Delete(node *node.Node) error
}

Blobstore defines an interface for storing blobs in a blobstore

type PathLookup

type PathLookup interface {
	NodeFromResource(ctx context.Context, ref *provider.Reference) (*node.Node, error)
	NodeFromID(ctx context.Context, id *provider.ResourceId) (n *node.Node, err error)

	InternalRoot() string
	InternalPath(spaceID, nodeID string) string
	Path(ctx context.Context, n *node.Node, hasPermission node.PermissionFunc) (path string, err error)
	MetadataBackend() metadata.Backend
	ReadBlobSizeAttr(ctx context.Context, path string) (int64, error)
	ReadBlobIDAttr(ctx context.Context, path string) (string, error)
	TypeFromPath(ctx context.Context, path string) provider.ResourceType
}

PathLookup defines the interface for the lookup component

type PermissionCheckFunc

type PermissionCheckFunc func(rp *provider.ResourcePermissions) bool

PermissionCheckFunc defined a function used to check resource permissions

type Tree

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

Tree manages a hierarchical tree

func New

func New(lu PathLookup, bs Blobstore, o *options.Options, cache store.Store) *Tree

New returns a new instance of Tree

func (*Tree) CreateDir

func (t *Tree) CreateDir(ctx context.Context, n *node.Node) (err error)

CreateDir creates a new directory entry in the tree

func (*Tree) Delete

func (t *Tree) Delete(ctx context.Context, n *node.Node) (err error)

Delete deletes a node in the tree by moving it to the trash

func (*Tree) DeleteBlob

func (t *Tree) DeleteBlob(node *node.Node) error

DeleteBlob deletes a blob from the blobstore

func (*Tree) GetMD

func (t *Tree) GetMD(ctx context.Context, n *node.Node) (os.FileInfo, error)

GetMD returns the metadata of a node in the tree

func (*Tree) ListFolder

func (t *Tree) ListFolder(ctx context.Context, n *node.Node) ([]*node.Node, error)

ListFolder lists the content of a folder node

func (*Tree) Move

func (t *Tree) Move(ctx context.Context, oldNode *node.Node, newNode *node.Node) (err error)

Move replaces the target with the source

func (*Tree) Propagate

func (t *Tree) Propagate(ctx context.Context, n *node.Node, sizeDiff int64) (err error)

Propagate propagates changes to the root of the tree

func (*Tree) PurgeRecycleItemFunc

func (t *Tree) PurgeRecycleItemFunc(ctx context.Context, spaceid, key string, path string) (*node.Node, func() error, error)

PurgeRecycleItemFunc returns a node and a function to purge it from the trash

func (*Tree) ReadBlob

func (t *Tree) ReadBlob(node *node.Node) (io.ReadCloser, error)

ReadBlob reads a blob from the blobstore

func (*Tree) RestoreRecycleItemFunc

func (t *Tree) RestoreRecycleItemFunc(ctx context.Context, spaceid, key, trashPath string, targetNode *node.Node) (*node.Node, *node.Node, func() error, error)

RestoreRecycleItemFunc returns a node and a function to restore it from the trash.

func (*Tree) Setup

func (t *Tree) Setup() error

Setup prepares the tree structure

func (*Tree) TouchFile added in v2.6.1

func (t *Tree) TouchFile(ctx context.Context, n *node.Node, markprocessing bool, mtime string) error

TouchFile creates a new empty file

func (*Tree) WriteBlob

func (t *Tree) WriteBlob(node *node.Node, source string) error

WriteBlob writes a blob to the blobstore

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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