NAME
FusqlFS - FUSE filesystem to work with database via DBI interface
SYNOPSIS
use FusqlFS;
FusqlFS::init(
engine => 'PgSQL',
host => 'localhost',
database => 'postgres',
user => 'postgres',
password => 'pas$w0rd',
limit => 100,
debug => 2,
threaded => 0,
);
FusqlFS::mount(
'/path/to/mount/point',
'allow_other',
);
DESCRIPTION
This package provides basic interface to FusqlFS to initialize DBI backend and mount it with Fuse.
SUBROUTINES
- init
-
Initializes FusqlFS::Backend and FusqlFS::Cache subsystems, preparing all resources to be actually used by Fuse interface.
Input: %options. Output: $fusqlfs_instance.
- mount
-
Runs fuse main loop, configured with all required hooks and options to interface with FusqlFS::Backend.
Input: $mountpoint, $mountopts.
- Fuse hooks
-
"getdir" in Fuse, "getattr" in Fuse, "readlink" in Fuse, "read" in Fuse, "write" in Fuse, "flush" in Fuse, "open" in Fuse, "truncate" in Fuse, "symlink" in Fuse, "unlink" in Fuse, "mkdir" in Fuse, "rmdir" in Fuse, "mknod" in Fuse, "rename" in Fuse, "fsync" in Fuse, "utime" in Fuse.
See Fuse for details.
- fold_path
-
Folds path by removing "..", "." and other special sequences from it.
Input: $path. Output $folded_path.
- file_struct
-
Creates FUSE-exportable file structure for given entry.
Input: $entry. Output: @file_struct.
- by_path
-
Gets entry by path, uses cache.
Input: $path.
- clear_cache
-
Invalidates entries cache for given path, optionally recursively invalidating all paths up to given depth.
Input: $path, $depth=undef.
- flush_inbuffer
-
Flushes input buffer for given $entry by given $path.
Input: $path, $entry.