PgFuse(1)

NAME
PgFuse - FUSE-based file system with a PostgreSQL storage backend

SYNOPSIS

  mounting
pgfuse <PostgreSQL connection string> <mountpoint> [options]

  unmounting
fusermount -u <mountpoint>

OPTIONS

  general options

-h  --help
    print help

-V  --version
    print version

-v  --verbose
    print verbose information into syslog (use with care!)

-f  FUSE foreground option - do not run as daemon.

-s  FUSE singlethreaded option (disables multi-threaded operation)

  Postgresql connection string

PostgreSQL connection string can be any valid connection string as
    documented in the documentation of libpq in function PQconnectdb.

All PostgresSQL connection parameters must be given in the form
    <option_name>=<option_value>, separated by spaces. So if you want to specify more than one parameter, you must quote the whole connection string.

Here some of the most important parameters you can set:

host
    The host running the PostgreSQL database. If ommitted communication is done via Unix domain sockets.

port
    TCP-port of the PostgreSQL postmaster, default is 5432

dbname
    The PostgreSQL database to connect to. If not specified the name of the current Unix user is taken.

user
    The PostgreSQL user to connect as. If not specified the name of the current Unix user is taken.

For more options have a look at the documentation of libpq
    in function PQconnectdb.

Example: "host=foo.lan dbname=test user=test"

Note: When adding a permanent mount point to /etc/fstab
    you have to escape the spaces with \040, for example:

pgfuse#host=localhost\040dbname=testdb\040user=testuser /mnt/pgfuse fuse defaults 0 0

  Fuse and PgFuse options
Options are the normal FUSE options plus the special PgFuse options:

-o ro (default="")
    The default is to mount the filesystem read-writable. This can be overruled to allow only read operations.

-o noatime (default=false)
    The default is to keep track of access times on reads. This can be switched off with noatime.

-o blocksize=<bytes> (default=4096)
    Store blocks of size <blocksize>. Do not change this while having data in your filesystem, otherwise you can't access it anymore! This is useful for special cases and performance testing.

  FUSE/Mount options
For a list of possible mount and FUSE options consult the manpage of mount and the README file of the fuse source package.

DESCRIPTION
PgFuse is a FUSE filesystem which stores inodes and data into a PostgreSQL database.

INSTALLATION
Before using PgFuse you must create a database user and a database where to store the files to. Populate the initial schema with:

psql < /usr/share/pgfuse-xxxx/schema.sql

BUGS

- no hard-links

- no mknod support

- no access right checks

- no support for extended attributes and ACLs

- tested on Linux only currently

- no self-containment properties in respect to the database

AUTHOR
PgFuse has been written by Andreas Baumann <mail@andreasbaumann.cc>