Home » Install s3fs on AWS S3

Install s3fs on AWS S3

  • by

s3fs allows Linux and macOS to mount an S3 bucket via FUSE. s3fs preserves the native object format for files, allowing use of other tools like AWS CLI.

Installation

Many systems provide pre-built packages:

Amazon Linux via EPEL:

    sudo amazon-linux-extras install epel
    sudo yum install s3fs-fuse

Arch Linux:

    sudo pacman -S s3fs-fuse

Debian 9 and Ubuntu 16.04 or newer:

    sudo apt install s3fs

Fedora 27 or newer:

    sudo dnf install s3fs-fuse

Gentoo:

    sudo emerge net-fs/s3fs

RHEL and CentOS 7 or newer via EPEL:

    sudo yum install epel-release
    sudo yum install s3fs-fuse

SUSE 12 and openSUSE 42.1 or newer:

    sudo zypper install s3fs

macOS via Homebrew:

    brew install --cask osxfuse
    brew install s3fs

Examples

s3fs supports the standard AWS credentials file stored in ${HOME}/.aws/credentials. Alternatively, s3fs supports a custom passwd file.

The default location for the s3fs password file can be created:

  • using a .passwd-s3fs file in the users home directory (i.e. ${HOME}/.passwd-s3fs)
  • using the system-wide /etc/passwd-s3fs file

Enter your credentials in a file ${HOME}/.passwd-s3fs and set owner-only permissions:

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs
chmod 600 /etc/passwd-s3fs

Run s3fs with an existing bucket mybucket and directory /path/to/mountpoint:

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs

If you encounter any errors, enable debug output:

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o dbglevel=info -f -o curldbg

You can also mount on boot by entering the following line to /etc/fstab:

mybucket /path/to/mountpoint fuse.s3fs _netdev,allow_other 0 0

If you use s3fs with a non-Amazon S3 implementation, specify the URL and path-style requests:

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o url=https://url.to.s3/ -o use_path_request_style

my example fstab configuration (tested)

mybucket /mnt/point fuse.s3fs _netdev,allow_other,use_path_request_style,url=https://s3.ap-xxx.amazonaws.com 0 0

If you have any questions or feedback, feel free to leave a comment.

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

1 × three =