Skip to main content

s3fs-fuse

s3fs-fuse is a FUSE (File System in Userspace) filesystem that allows you to mount an S3 bucket as a local filesystem. It is written in C++ and uses the libfuse library to communicate with the Linux kernel and interact with the filesystem.

s3fs can be used to access S3 buckets in a way that is similar to how you would access a local filesystem. You can use standard Linux tools, such as ls, cp, mv, and rm, to manage the files in your S3 bucket. You can also use s3fs to mount an S3 bucket as a read-only filesystem or to create a new bucket.

s3fs is useful for a variety of use cases, including backup and recovery, data analysis, and media streaming. It is especially useful for accessing S3 buckets from servers or other environments where the AWS SDKs are not available or where it is not practical to use the AWS CLI.

s3fs-fuse platform install guide
Check installation for instructions.

Installation

In case of Debian / Ubuntu system please perform following action:

sudo apt install s3fs
info

To access the actual guide how to mount a bucket with s3fs-fuse click here!

Features1

  • large subset of POSIX including reading/writing files, directories, symlinks, mode, uid/gid, and extended attributes
  • compatible with Amazon S3, and other S3-based object stores
  • allows random writes and appends
  • large files via multi-part upload
  • renames via server-side copy
  • optional server-side encryption
  • data integrity via MD5 hashes
  • in-memory metadata caching
  • local disk data caching
  • user-specified regions, including Amazon GovCloud
  • authenticate via v2 or v4 signatures

Limitations1

*random writes or appends to files require rewriting the entire object, optimized with multi-part upload copy

  • metadata operations such as listing directories have poor performance due to network latency
  • non-AWS providers may have eventual consistency so reads can temporarily yield stale data (AWS offers read-after-write consistency since Dec 2020)
  • no atomic renames of files or directories
  • no coordination between multiple clients mounting the same bucket
  • no hard link
  • inotify detects only local modifications, not external ones by other clients or tools

  1. From s3fs-fuse GitHub - Link