metadata

package
v2.14.0 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsAttrUnset

func IsAttrUnset(err error) bool

IsAttrUnset checks the xattr.ENOATTR from the xattr package which redifines it as ENODATA on platforms that do not natively support it (eg. linux) see https://github.com/pkg/xattr/blob/8725d4ccc0fcef59c8d9f0eaf606b3c6f962467a/xattr_linux.go#L19-L22

func IsNotExist

func IsNotExist(err error) bool

IsNotExist checks if there is a os not exists error buried inside the xattr error, as we cannot just use os.IsNotExist().

Types

type Backend

type Backend interface {
	Name() string

	All(path string) (map[string][]byte, error)
	Get(path, key string) ([]byte, error)

	GetInt64(path, key string) (int64, error)
	List(path string) (attribs []string, err error)
	Set(path, key string, val []byte) error
	SetMultiple(path string, attribs map[string][]byte, acquireLock bool) error
	Remove(path, key string) error

	Purge(path string) error
	Rename(oldPath, newPath string) error
	IsMetaFile(path string) bool
	MetadataPath(path string) string

	AllWithLockedSource(path string, source io.Reader) (map[string][]byte, error)
}

Backend defines the interface for file attribute backends

type MessagePackBackend

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

MessagePackBackend persists the attributes in messagepack format inside the file

func NewMessagePackBackend

func NewMessagePackBackend(rootPath string, o cache.Config) MessagePackBackend

NewMessagePackBackend returns a new MessagePackBackend instance

func (MessagePackBackend) All

func (b MessagePackBackend) All(path string) (map[string][]byte, error)

All reads all extended attributes for a node

func (MessagePackBackend) AllWithLockedSource

func (b MessagePackBackend) AllWithLockedSource(path string, source io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader (if possible). The path argument is used for storing the data in the cache

func (MessagePackBackend) Get

func (b MessagePackBackend) Get(path, key string) ([]byte, error)

Get an extended attribute value for the given key

func (MessagePackBackend) GetInt64

func (b MessagePackBackend) GetInt64(path, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (MessagePackBackend) IsMetaFile

func (MessagePackBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (MessagePackBackend) List

func (b MessagePackBackend) List(path string) ([]string, error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (MessagePackBackend) MetadataPath

func (MessagePackBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (MessagePackBackend) Name

func (MessagePackBackend) Name() string

Name returns the name of the backend

func (MessagePackBackend) Purge

func (b MessagePackBackend) Purge(path string) error

Purge purges the data of a given path

func (MessagePackBackend) Remove

func (b MessagePackBackend) Remove(path, key string) error

Remove an extended attribute key

func (MessagePackBackend) Rename

func (b MessagePackBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (MessagePackBackend) Set

func (b MessagePackBackend) Set(path, key string, val []byte) error

Set sets one attribute for the given path

func (MessagePackBackend) SetMultiple

func (b MessagePackBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) error

SetMultiple sets a set of attribute for the given path

type NullBackend

type NullBackend struct{}

NullBackend is the default stub backend, used to enforce the configuration of a proper backend

func (NullBackend) All

func (NullBackend) All(path string) (map[string][]byte, error)

All reads all extended attributes for a node

func (NullBackend) AllWithLockedSource

func (NullBackend) AllWithLockedSource(path string, source io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader The path argument is used for storing the data in the cache

func (NullBackend) Get

func (NullBackend) Get(path, key string) ([]byte, error)

Get an extended attribute value for the given key

func (NullBackend) GetInt64

func (NullBackend) GetInt64(path, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (NullBackend) IsMetaFile

func (NullBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (NullBackend) List

func (NullBackend) List(path string) ([]string, error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (NullBackend) MetadataPath

func (NullBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (NullBackend) Name

func (NullBackend) Name() string

Name returns the name of the backend

func (NullBackend) Purge

func (NullBackend) Purge(purges string) error

Purge purges the data of a given path from any cache that might hold it

func (NullBackend) Remove

func (NullBackend) Remove(path string, key string) error

Remove removes an extended attribute key

func (NullBackend) Rename

func (NullBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (NullBackend) Set

func (NullBackend) Set(path string, key string, val []byte) error

Set sets one attribute for the given path

func (NullBackend) SetMultiple

func (NullBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) error

SetMultiple sets a set of attribute for the given path

type XattrsBackend

type XattrsBackend struct{}

XattrsBackend stores the file attributes in extended attributes

func (XattrsBackend) All

func (b XattrsBackend) All(filePath string) (attribs map[string][]byte, err error)

All reads all extended attributes for a node, protected by a shared file lock

func (XattrsBackend) AllWithLockedSource

func (b XattrsBackend) AllWithLockedSource(path string, _ io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader. The path argument is used for storing the data in the cache

func (XattrsBackend) Get

func (b XattrsBackend) Get(filePath, key string) ([]byte, error)

Get an extended attribute value for the given key No file locking is involved here as reading a single xattr is considered to be atomic.

func (XattrsBackend) GetInt64

func (b XattrsBackend) GetInt64(filePath, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (XattrsBackend) IsMetaFile

func (XattrsBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (XattrsBackend) List

func (XattrsBackend) List(filePath string) (attribs []string, err error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (XattrsBackend) MetadataPath

func (XattrsBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (XattrsBackend) Name

func (XattrsBackend) Name() string

Name returns the name of the backend

func (XattrsBackend) Purge

func (XattrsBackend) Purge(path string) error

Purge purges the data of a given path

func (XattrsBackend) Remove

func (XattrsBackend) Remove(filePath string, key string) (err error)

Remove an extended attribute key

func (XattrsBackend) Rename

func (XattrsBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (XattrsBackend) Set

func (b XattrsBackend) Set(path string, key string, val []byte) (err error)

Set sets one attribute for the given path

func (XattrsBackend) SetMultiple

func (XattrsBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) (err error)

SetMultiple sets a set of attribute for the given path

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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