Back to Pocketbase

Interface rootFS

static/jsvm/interfaces/os.rootFS.html

latest5.6 KB
Original Source

Interface rootFS

Root may be used to only access files within a single directory tree.

Methods on Root can only access files and directories beneath a root directory. If any component of a file name passed to a method of Root references a location outside the root, the method returns an error. File names may reference the directory itself (.).

Methods on Root will follow symbolic links, but symbolic links may not reference a location outside the root. Symbolic links must not be absolute.

Methods on Root do not prohibit traversal of filesystem boundaries, Linux bind mounts, /proc special files, or access to Unix device files.

Methods on Root are safe to be used from multiple goroutines simultaneously.

On most platforms, creating a Root opens a file descriptor or handle referencing the directory. If the directory is moved, methods on Root reference the original directory in its new location.

Root's behavior differs on some platforms:

- When GOOS=windows, file names may not reference Windows reserved device names such as NUL and COM1. - When GOOS=js, Root is vulnerable to TOCTOU (time-of-check-time-of-use) attacks in symlink validation, and cannot ensure that operations will not escape the root. - When GOOS=plan9 or GOOS=js, Root does not track directories across renames. On these platforms, a Root references a directory name, not a file descriptor.Copy

Hierarchy

Index

Methods

closecreatefslstatmkdirnameopenopenFileopenRootreadDirreadFileremovestat

Methods

close

  • close(): void

Close closes the Root. After Close is called, methods on Root return errors.

Returns void

create

Create creates or truncates the named file in the root. See [Create] for more details.

Parameters

name: string

Returns os.File

fs

  • fs(): FS

FS returns a file system (an fs.FS) for the tree of files in the root.

The result implements [io/fs.StatFS], [io/fs.ReadFileFS] and [io/fs.ReadDirFS].

Returns FS

lstat

Lstat returns a [FileInfo] describing the named file in the root. If the file is a symbolic link, the returned FileInfo describes the symbolic link. See [Lstat] for more details.

Parameters

name: string

Returns os.FileInfo

mkdir

  • mkdir(name, perm): void

Mkdir creates a new directory in the root with the specified name and permission bits (before umask). See [Mkdir] for more details.

If perm contains bits other than the nine least-significant bits (0o777), OpenFile returns an error.

Parameters

name: string
perm: os.FileMode

Returns void

name

  • name(): string

Name returns the name of the directory presented to OpenRoot.

It is safe to call Name after [Close].

Returns string

open

Open opens the named file in the root for reading. See [Open] for more details.

Parameters

name: string

Returns fs.File

openFile

  • openFile(name, flag, perm): os.File

OpenFile opens the named file in the root. See [OpenFile] for more details.

If perm contains bits other than the nine least-significant bits (0o777), OpenFile returns an error.

Parameters

name: string
flag: number
perm: os.FileMode

Returns os.File

openRoot

  • openRoot(name): Root

OpenRoot opens the named directory in the root. If there is an error, it will be of type *PathError.

Parameters

name: string

Returns Root

readDir

Parameters

name: string

Returns os.DirEntry[]

readFile

  • readFile(name): string | number[]

Parameters

name: string

Returns string | number[]

remove

  • remove(name): void

Remove removes the named file or (empty) directory in the root. See [Remove] for more details.

Parameters

name: string

Returns void

stat

Stat returns a [FileInfo] describing the named file in the root. See [Stat] for more details.

Parameters

name: string

Returns os.FileInfo

Settings

Member Visibility

  • Inherited

Theme

OSLightDark

On This Page

Generated using TypeDoc