Documentation ¶
Index ¶
- func IsAttrUnset(err error) bool
- func IsNotExist(err error) bool
- type Backend
- type MessagePackBackend
- func (b MessagePackBackend) All(path string) (map[string][]byte, error)
- func (b MessagePackBackend) AllWithLockedSource(path string, source io.Reader) (map[string][]byte, error)
- func (b MessagePackBackend) Get(path, key string) ([]byte, error)
- func (b MessagePackBackend) GetInt64(path, key string) (int64, error)
- func (MessagePackBackend) IsMetaFile(path string) bool
- func (b MessagePackBackend) List(path string) ([]string, error)
- func (MessagePackBackend) MetadataPath(path string) string
- func (MessagePackBackend) Name() string
- func (b MessagePackBackend) Purge(path string) error
- func (b MessagePackBackend) Remove(path, key string) error
- func (b MessagePackBackend) Rename(oldPath, newPath string) error
- func (b MessagePackBackend) Set(path, key string, val []byte) error
- func (b MessagePackBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) error
- type NullBackend
- func (NullBackend) All(path string) (map[string][]byte, error)
- func (NullBackend) AllWithLockedSource(path string, source io.Reader) (map[string][]byte, error)
- func (NullBackend) Get(path, key string) ([]byte, error)
- func (NullBackend) GetInt64(path, key string) (int64, error)
- func (NullBackend) IsMetaFile(path string) bool
- func (NullBackend) List(path string) ([]string, error)
- func (NullBackend) MetadataPath(path string) string
- func (NullBackend) Name() string
- func (NullBackend) Purge(purges string) error
- func (NullBackend) Remove(path string, key string) error
- func (NullBackend) Rename(oldPath, newPath string) error
- func (NullBackend) Set(path string, key string, val []byte) error
- func (NullBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) error
- type XattrsBackend
- func (b XattrsBackend) All(filePath string) (attribs map[string][]byte, err error)
- func (b XattrsBackend) AllWithLockedSource(path string, _ io.Reader) (map[string][]byte, error)
- func (b XattrsBackend) Get(filePath, key string) ([]byte, error)
- func (b XattrsBackend) GetInt64(filePath, key string) (int64, error)
- func (XattrsBackend) IsMetaFile(path string) bool
- func (XattrsBackend) List(filePath string) (attribs []string, err error)
- func (XattrsBackend) MetadataPath(path string) string
- func (XattrsBackend) Name() string
- func (XattrsBackend) Purge(path string) error
- func (XattrsBackend) Remove(filePath string, key string) (err error)
- func (XattrsBackend) Rename(oldPath, newPath string) error
- func (b XattrsBackend) Set(path string, key string, val []byte) (err error)
- func (XattrsBackend) SetMultiple(path string, attribs map[string][]byte, acquireLock bool) (err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAttrUnset ¶
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 ¶
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 ¶
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) 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 ¶
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 ¶
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) 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