TigrisFS is a high-performance FUSE-based file system for S3-compatible object storage written in Go.
TigrisFS allows you to mount an S3 or compatible object store bucket as a local file system.
TigrisFS is based on GeeseFS, which is a fork of Goofys. GeeseFS focused on solving performance problems which FUSE file systems based on S3 typically have, especially with small files and metadata operations. It solves these problems by using aggressive parallelism and asynchrony.
The goal of TigrisFS is to further improve on performance and reliability especially in distributed cluster setup.
In the first release we focused on improving security and reliability of the code base:
- Improved security by:
- removing bundled, outdated AWS SDK with critical vulnerabilities.
- upgrading dependencies to fix security vulnerabilities.
- Improved reliability by:
- fixing all race conditions found by race detector, which is now enabled by default in tests.
- fixing all linter issues and enabling linting by default in CI.
- running more extensive tests and enabling them by default in CI.
When mounted with the Tigris backend TigrisFS supports:
- POSIX permissions, special files, symbolic links.
- Auto-preload content of small files on directory list in single request.
- Allows to auto prefetch directory data to the region on list.
-
Install the package:
- Debian-based systems:
dpkg -i tigrisfs_1.2.0_linux_amd64.deb
- RPM-based systems:
rpm -i tigrisfs_1.2.0_linux_amd64.rpm
- Debian-based systems:
-
Configure credentials TigrisFS can use credentials from different sources:
- Standard AWS credentials files
~/.aws/credentials
and~/.aws/config
. Useaws configure
to set them up and exportAWS_PROFILE
environment variable to use a specific profile. - Environment variables
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
. - TigrisFS credentials in
/etc/default/tigrisfs
or mount specific credentials in/etc/default/tigrisfs-<bucket>
. See docs for more details.
- Standard AWS credentials files
-
Mount the bucket
- as current user
The bucket is mounted at
systemctl --user start tigrisfs@<bucket>
$HOME/mnt/tigris/<bucket>
. - as root
The bucket is mounted at
systemctl start tigrisfs@<bucket>
/mnt/tigris/<bucket>
.
- as current user
- Download and unpack the latest release:
- MacOS ARM64
curl -L https://github.com/tigrisdata/tigrisfs/releases/download/v1.2.0/tigrisfs_1.2.0_darwin_arm64.tar.gz | sudo tar -xz -C /usr/local/bin
- MacOS ARM64
- Configuration is the same as for the DEB and RPM packages above.
- Mount the bucket:
- as current user
/usr/local/bin/tigrisfs <bucket> $HOME/mnt/tigrisfs/<bucket>
- as root
sudo /usr/local/bin/tigrisfs <bucket> /mnt/tigrisfs/<bucket>
- as current user
Licensed under the Apache License, Version 2.0
See LICENSE
and AUTHORS