fuse

package
v0.0.0-...-4275e79 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2022 License: Unlicense Imports: 8 Imported by: 0

Documentation

Overview

Package fuse contains core fuse-related code. Uses SQLBackend interface to implement fs operations

Index

Constants

This section is empty.

Variables

Backend should set from outside. No defaults

Functions

func InitializeDB

func InitializeDB(dsn string) error

InitializeDB creates the tables and initial rows necessary for the fs to function

func MountFS

func MountFS(dsn, mountpoint string) error

MountFS verifies the db state and mounts the fuse fs at mountpoint

func VerifyDB

func VerifyDB(dsn string) error

VerifyDB is just a wrapper over Backend's VerifyDB function

Types

type Dir

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

Dir represents a on fs

func (*Dir) Attr

func (d *Dir) Attr(ctx context.Context, attr *fuse.Attr) (err error)

Attr retrieves metadata attr for dir

func (*Dir) Create

func (d *Dir) Create(ctx context.Context, req *fuse.CreateRequest, res *fuse.CreateResponse) (fs.Node, fs.Handle, error)

Create creates a file under Dir d

func (*Dir) Lookup

func (d *Dir) Lookup(ctx context.Context, req *fuse.LookupRequest, res *fuse.LookupResponse) (fs.Node, error)

Lookup performs a directory lookup in Dir d based on name

func (*Dir) Mkdir

func (d *Dir) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error)

Mkdir creates a directory under Dir d

func (*Dir) ReadDirAll

func (d *Dir) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error)

ReadDirAll returns all entries in the Dir d

func (*Dir) Remove

func (d *Dir) Remove(ctx context.Context, req *fuse.RemoveRequest) error

Remove removes a directory or file based on req under Dir d

func (*Dir) Setattr

func (d *Dir) Setattr(ctx context.Context, req *fuse.SetattrRequest, res *fuse.SetattrResponse) error

Setattr updates the metadata table on db based on req

type FS

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

FS represents the file system itself

func (*FS) Root

func (f *FS) Root() (fs.Node, error)

Root returns the root directory on fs

type File

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

File represents a file on fs

func (*File) Attr

func (f *File) Attr(ctx context.Context, attr *fuse.Attr) (err error)

Attr retrieves metadata attr for file

func (*File) Open

func (f *File) Open(ctx context.Context, req *fuse.OpenRequest, res *fuse.OpenResponse) (fs.Handle, error)

Open file (to get FileHandle)

func (*File) Setattr

func (f *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, res *fuse.SetattrResponse) error

Setattr updates the metadata table on db based on req

type FileHandle

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

FileHandle contains information about an open file on fs

func (*FileHandle) Read

func (fh *FileHandle) Read(ctx context.Context, req *fuse.ReadRequest, res *fuse.ReadResponse) error

Read reads from the FileHandle, fh

NOTE: this is in a very bad state currently, need

to split the file into blocks to make it better

func (*FileHandle) Release

func (fh *FileHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) error

Release file handle

func (*FileHandle) Write

func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, res *fuse.WriteResponse) error

Write writes to a FileHandle, fh

Jump to

Keyboard shortcuts

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