fsmount

package
v3.2.219 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2025 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package fsmount provides functionality to mount a Files.com filesystem using FUSE.

Index

Constants

View Source
const (
	// DefaultWriteConcurrency is the default number of concurrent file parts to upload.
	DefaultWriteConcurrency = 50

	// DefaultCacheTTL is the default cache TTL for the filesystem metadata.
	DefaultCacheTTL = 5 * time.Second

	// DefaultVolumeName is the default volume name for the filesystem.
	DefaultVolumeName = "Files.com"

	// DefaultDebugFuseLog is the default path to the fuse debug log. [Windows only]
	DefaultDebugFuseLog = "fuse.log"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type FSWriter

type FSWriter interface {
	// contains filtered or unexported methods
}

type Filescomfs added in v3.2.197

type Filescomfs struct {
	fuse.FileSystemBase // implements fuse.FileSystem with no-op methods
	// contains filtered or unexported fields
}

Filescomfs is a filesystem that implements the fuse.FileSystem interface, allowing it to be mounted using FUSE. It provides a virtual filesystem interface to Files.com, allowing users to interact with their Files.com account as if it were a local filesystem.

func (*Filescomfs) Access added in v3.2.197

func (fs *Filescomfs) Access(path string, mask uint32) int

Access checks file access permissions. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Chflags added in v3.2.197

func (fs *Filescomfs) Chflags(path string, flags uint32) int

Chflags is part of the FileSystemChflags interface and changes the BSD file flags (Windows file attributes).

func (*Filescomfs) Chmod added in v3.2.197

func (fs *Filescomfs) Chmod(path string, mode uint32) int

Chmod changes the permission bits of a file. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Chown added in v3.2.197

func (fs *Filescomfs) Chown(path string, uid uint32, gid uint32) int

Chown changes the owner and group of a file. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Create added in v3.2.197

func (fs *Filescomfs) Create(path string, flags int, mode uint32) (errc int, fh uint64)

func (*Filescomfs) CreateEx added in v3.2.197

func (fs *Filescomfs) CreateEx(path string, mode uint32, fi *fuse.FileInfo_t) int

OpenEx and CreateEx are similar to Open and Create except that they allow direct manipulation of the FileInfo_t struct (which is analogous to the FUSE struct fuse_file_info). If implemented, they are preferred over Open and Create.

func (*Filescomfs) Destroy added in v3.2.197

func (fs *Filescomfs) Destroy()

func (*Filescomfs) Flush added in v3.2.197

func (fs *Filescomfs) Flush(path string, fh uint64) int

Flush flushes cached file data. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Fsync added in v3.2.197

func (fs *Filescomfs) Fsync(path string, datasync bool, fh uint64) int

Fsync synchronizes file contents. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Fsyncdir added in v3.2.197

func (fs *Filescomfs) Fsyncdir(path string, datasync bool, fh uint64) int

Fsyncdir synchronizes directory contents. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Getattr added in v3.2.197

func (fs *Filescomfs) Getattr(path string, stat *fuse.Stat_t, fh uint64) (errc int)

func (*Filescomfs) Getpath added in v3.2.197

func (fs *Filescomfs) Getpath(path string, fh uint64) (int, string)

Getpath is part of the FileSystemGetpath interface and allows a case-insensitive file system to report the correct case of a file path.

func (*Filescomfs) Getxattr added in v3.2.197

func (fs *Filescomfs) Getxattr(path string, name string) (int, []byte)

Getxattr gets extended attributes. Any return value other than -fuse.ENOSYS indicates support for extended attributes, but also expects Setxattr, Listxattr, and Removexattr to exist for extended attribute support.

func (*Filescomfs) Init added in v3.2.197

func (fs *Filescomfs) Init()

Init initializes the Filescomfs filesystem.

func (fs *Filescomfs) Link(oldpath string, newpath string) int

Link creates a hard link to a file. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Listxattr added in v3.2.197

func (fs *Filescomfs) Listxattr(path string, fill func(name string) bool) int

Listxattr lists extended attributes.

func (*Filescomfs) Mkdir added in v3.2.197

func (fs *Filescomfs) Mkdir(path string, mode uint32) (errc int)

func (*Filescomfs) Mknod added in v3.2.197

func (fs *Filescomfs) Mknod(path string, mode uint32, dev uint64) int

Mknod creates a file node. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Open added in v3.2.197

func (fs *Filescomfs) Open(path string, flags int) (errc int, fh uint64)

func (*Filescomfs) OpenEx added in v3.2.197

func (fs *Filescomfs) OpenEx(path string, fi *fuse.FileInfo_t) int

func (*Filescomfs) Opendir added in v3.2.197

func (fs *Filescomfs) Opendir(path string) (errc int, fh uint64)

func (*Filescomfs) Read added in v3.2.197

func (fs *Filescomfs) Read(path string, buff []byte, ofst int64, fh uint64) (n int)

func (*Filescomfs) Readdir added in v3.2.197

func (fs *Filescomfs) Readdir(path string,
	fill func(name string, stat *fuse.Stat_t, ofst int64) bool,
	ofst int64,
	fh uint64) (errc int)
func (fs *Filescomfs) Readlink(path string) (int, string)

Readlink reads the target of a symbolic link. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Release added in v3.2.197

func (fs *Filescomfs) Release(path string, fh uint64) (errc int)

func (*Filescomfs) Releasedir added in v3.2.197

func (fs *Filescomfs) Releasedir(path string, fh uint64) int

func (*Filescomfs) Removexattr added in v3.2.197

func (fs *Filescomfs) Removexattr(path string, name string) int

Removexattr removes extended attributes.

func (*Filescomfs) Rename added in v3.2.197

func (fs *Filescomfs) Rename(oldpath string, newpath string) (errc int)

func (*Filescomfs) Rmdir added in v3.2.197

func (fs *Filescomfs) Rmdir(path string) int

func (*Filescomfs) Setchgtime added in v3.2.197

func (fs *Filescomfs) Setchgtime(path string, tmsp fuse.Timespec) int

Setchgtime is part of the FileSystemSetchgtime interface and changes the file change (ctime) time.

func (*Filescomfs) Setcrtime added in v3.2.197

func (fs *Filescomfs) Setcrtime(path string, tmsp fuse.Timespec) int

Setcrtime is part of the FileSystemSetcrtime interface and changes the file creation (birth) time.

func (*Filescomfs) Setxattr added in v3.2.197

func (fs *Filescomfs) Setxattr(path string, name string, value []byte, flags int) int

Setxattr sets extended attributes.

func (*Filescomfs) Statfs added in v3.2.197

func (fs *Filescomfs) Statfs(path string, stat *fuse.Statfs_t) (errc int)
func (fs *Filescomfs) Symlink(target string, newpath string) int

Symlink creates a symbolic link. The return value of -fuse.ENOSYS indicates the method is not supported.

func (*Filescomfs) Truncate added in v3.2.197

func (fs *Filescomfs) Truncate(path string, size int64, fh uint64) (errc int)
func (fs *Filescomfs) Unlink(path string) int

func (*Filescomfs) Utimens added in v3.2.197

func (fs *Filescomfs) Utimens(path string, tmsp []fuse.Timespec) (errc int)

func (*Filescomfs) Validate added in v3.2.197

func (fs *Filescomfs) Validate() error

Validate checks if the Filescomfs filesystem is valid by attempting to list the root directory.

func (*Filescomfs) Write added in v3.2.197

func (fs *Filescomfs) Write(path string, buff []byte, ofst int64, fh uint64) (n int)

type MountHost added in v3.2.197

type MountHost interface {
	Unmount() bool
}

MountHost defines the interface for a mounted Files.com filesystem.

func Mount added in v3.2.197

func Mount(params MountParams) (MountHost, error)

Mount initializes a Files.com filesystem and mounts it using FUSE.

type MountParams added in v3.2.197

type MountParams struct {
	// Required. Files.com API configuration.
	Config *files_sdk.Config

	// Path to mount the filesystem.
	//
	// Optional on Windows. If provided, this is expected to be a drive letter
	// followed by a colon (e.g. "Z:"). If not specified, the letter closest to
	// the end of the Latin alphabet that is not already in use will be chosen.
	//
	// Required on MacOS and Linux, this is the path to the mount point (e.g. "/mnt/files").
	MountPoint string

	// Optional. Volume name to display in Finder/Explorer. On Windows, this is also used as the
	// share name for the UNC path. Defaults to "Files.com".
	VolumeName string

	// Optional. Files.com path to mount as the root of the filesystem. Defaults to the site root.
	Root string

	// Optional. Number of concurrent file parts to upload. Defaults to 50.
	WriteConcurrency int

	// Optional. Cache TTL for the filesystem metadata. Defaults to 5 seconds.
	CacheTTL time.Duration

	// Optional. Disable use of Files.com locks when writing files. Defaults to false.
	DisableLocking bool

	// Optional. List of patterns to ignore when creating files and directories. Defaults to
	// OS-specific defaults. To ignore no patterns, pass an empty slice.
	IgnorePatterns []string

	// Optional. If set to true, will initialize fuse configured to provide extra debug information.
	// Defaults to false.
	DebugFuse bool

	// Optional. The path to the fuse debug log. Only used if DebugFuse is set to true.
	// Defaults to fuse.log [Windows only]
	DebugFuseLog string

	// Optional. The path to the icon to display in Finder. If not specified, the default icon
	// for a network drive is used. [MacOS only]
	IconPath string
}

MountParams contains the parameters for mounting a Files.com filesystem using FUSE.

Jump to

Keyboard shortcuts

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