filesys

package
v0.0.0-...-2206af0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2022 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContinuousDirtyPages

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

func (*ContinuousDirtyPages) AddPage

func (pages *ContinuousDirtyPages) AddPage(offset int64, data []byte) (chunks []*filer_pb.FileChunk, err error)

func (*ContinuousDirtyPages) ReadDirtyDataAt

func (pages *ContinuousDirtyPages) ReadDirtyDataAt(data []byte, startOffset int64) (maxStop int64)

type ContinuousIntervals

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

func (*ContinuousIntervals) AddInterval

func (c *ContinuousIntervals) AddInterval(data []byte, offset int64)

func (*ContinuousIntervals) ReadDataAt

func (c *ContinuousIntervals) ReadDataAt(data []byte, startOffset int64) (maxStop int64)

func (*ContinuousIntervals) RemoveLargestIntervalLinkedList

func (c *ContinuousIntervals) RemoveLargestIntervalLinkedList() *IntervalLinkedList

func (*ContinuousIntervals) TotalSize

func (c *ContinuousIntervals) TotalSize() (total int64)

type Dir

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

func (*Dir) Access

func (dir *Dir) Access(ctx context.Context, req *fuse.AccessRequest) error

func (*Dir) Attr

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

func (*Dir) Create

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

func (*Dir) Forget

func (dir *Dir) Forget()

func (*Dir) Fsync

func (dir *Dir) Fsync(ctx context.Context, req *fuse.FsyncRequest) error

func (*Dir) FullPath

func (dir *Dir) FullPath() string

func (*Dir) Getxattr

func (dir *Dir) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error

func (*Dir) Listxattr

func (dir *Dir) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error

func (*Dir) Lookup

func (dir *Dir) Lookup(ctx context.Context, req *fuse.LookupRequest, resp *fuse.LookupResponse) (node fs.Node, err error)

func (*Dir) Mkdir

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

func (*Dir) ReadDirAll

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

func (*Dir) Remove

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

func (*Dir) Removexattr

func (dir *Dir) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error

func (*Dir) Rename

func (dir *Dir) Rename(ctx context.Context, req *fuse.RenameRequest, newDirectory fs.Node) error

func (*Dir) Setattr

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

func (*Dir) Setxattr

func (dir *Dir) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error
func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, error)

type File

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

func (*File) Access

func (file *File) Access(ctx context.Context, req *fuse.AccessRequest) error

func (*File) Attr

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

func (*File) Forget

func (file *File) Forget()

func (*File) Fsync

func (file *File) Fsync(ctx context.Context, req *fuse.FsyncRequest) error

func (*File) Getxattr

func (file *File) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error

func (*File) Listxattr

func (file *File) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error

func (*File) Open

func (file *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
func (file *File) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error)

func (*File) Removexattr

func (file *File) Removexattr(ctx context.Context, req *fuse.RemovexattrRequest) error

func (*File) Setattr

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

func (*File) Setxattr

func (file *File) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error

type FileHandle

type FileHandle struct {
	sync.RWMutex

	RequestId fuse.RequestID // unique ID for request
	NodeId    fuse.NodeID    // file or directory the request is about
	Uid       uint32         // user ID of process making request
	Gid       uint32         // group ID of process making request
	// contains filtered or unexported fields
}

func (*FileHandle) Flush

func (fh *FileHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error

func (*FileHandle) Read

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

func (*FileHandle) Release

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

func (*FileHandle) Write

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

Write to the file handle

type FsCache

type FsCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*FsCache) DeleteFsNode

func (c *FsCache) DeleteFsNode(path util.FullPath)

func (*FsCache) EnsureFsNode

func (c *FsCache) EnsureFsNode(path util.FullPath, genNodeFn func() fs.Node) fs.Node

func (*FsCache) GetFsNode

func (c *FsCache) GetFsNode(path util.FullPath) fs.Node

func (*FsCache) Move

func (c *FsCache) Move(oldPath util.FullPath, newPath util.FullPath) *FsNode

oldPath and newPath are full path including the new name

func (*FsCache) SetFsNode

func (c *FsCache) SetFsNode(path util.FullPath, node fs.Node)

type FsNode

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

type IntervalLinkedList

type IntervalLinkedList struct {
	Head *IntervalNode
	Tail *IntervalNode
}

func (*IntervalLinkedList) Offset

func (list *IntervalLinkedList) Offset() int64

func (*IntervalLinkedList) ReadData

func (list *IntervalLinkedList) ReadData(buf []byte, start, stop int64)

func (*IntervalLinkedList) Size

func (list *IntervalLinkedList) Size() int64

func (*IntervalLinkedList) ToReader

func (l *IntervalLinkedList) ToReader() io.Reader

type IntervalNode

type IntervalNode struct {
	Data   []byte
	Offset int64
	Size   int64
	Next   *IntervalNode
}

type Option

type Option struct {
	FilerGrpcAddress   string
	GrpcDialOption     grpc.DialOption
	FilerMountRootPath string
	Collection         string
	Replication        string
	TtlSec             int32
	ChunkSizeLimit     int64
	CacheDir           string
	CacheSizeMB        int64
	DataCenter         string
	EntryCacheTtl      time.Duration
	Umask              os.FileMode

	MountUid   uint32
	MountGid   uint32
	MountMode  os.FileMode
	MountCtime time.Time
	MountMtime time.Time

	OutsideContainerClusterMode bool // whether the mount runs outside SeaweedFS containers
	Cipher                      bool // whether encrypt data on volume server
	UidGidMapper                *meta_cache.UidGidMapper
}

type WFS

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

func NewSeaweedFileSystem

func NewSeaweedFileSystem(option *Option) *WFS

func (*WFS) AcquireHandle

func (wfs *WFS) AcquireHandle(file *File, uid, gid uint32) (fileHandle *FileHandle)

func (*WFS) AdjustedUrl

func (wfs *WFS) AdjustedUrl(hostAndPort string) string

func (*WFS) ReleaseHandle

func (wfs *WFS) ReleaseHandle(fullpath util.FullPath, handleId fuse.HandleID)

func (*WFS) Root

func (wfs *WFS) Root() (fs.Node, error)

func (*WFS) Statfs

func (wfs *WFS) Statfs(ctx context.Context, req *fuse.StatfsRequest, resp *fuse.StatfsResponse) error

Statfs is called to obtain file system metadata. Implements fuse.FSStatfser

func (*WFS) WithFilerClient

func (wfs *WFS) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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