RioFS is an userspace filesystem for Amazon S3 buckets for servers that run on Linux and MacOSX. It supports versioned and non-versioned buckets in all AWS regions. RioFS development started at Skoobe as a storage backend for legacy daemons which cannot talk natively to S3. It handles buckets with many thousands of keys and highly concurrent access gracefully.
- C compiler
- glib >= 2.22
- fuse >= 2.7.3
- libevent >= 2.0
- libxml >= 2.6
- libcrypto >= 0.9
- libmagic (optional: --with-libmagic=PATH)
./autogen.sh ./configure make sudo make install
export AWS_ACCESS_KEY_ID="your AWS access key" export AWS_SECRET_ACCESS_KEY="your AWS secret access key" riofs [options] [bucketname] [mountpoint]
-v: Verbose output. -f: Do not daemonize process. -c path: Path to configuration file. -o "opt[,opt...]": fuse options -l path: Log file to use. --uid: Set UID of filesystem owner. --gid: Set GID of filesystem owner. --fmode: Set mode for files. --dmode: Set mode for directories.
In order to allow other users to access a mounted directory:
launch RioFS with
On OS X it is recommended to run RioFS with the
Default configuration is located at
./configure --with-libmagic=PATHto guess the content-type of uploaded content (requires libmagic)
./configure --enable-debugto create a debug build
RioFS comes with a statistics server, have a look at riofs.xml.conf for details
Send a USR1 signal to tell RioFS to reread the configuration file
Send a USR2 signal to tell RioFS to reopen log file (useful for logrotate)
Send a TERM signal to unmount filesystem and terminate running RioFS instance (example:
Appending data to an existing file is not supported.
Folder renaming is not supported.
A file system for the S3 API is a leaky abstraction. Don't expect POSIX file system semantics.
Any help is welcome, just open an issue if you find a bug
We also need better documentation, testing, tutorials and benchmarks