goofys 0,0,0,2 travis-ci

a Filey System for Amazon S3 written in Go

Goofys is a Filey-System interface to Amazon S3

Build Status


Goofys allows you to mount an S3 bucket as a filey system.

It’s a Filey System instead of a File System because goofys strives for performance first and POSIX second. Particularly things that are difficult to support on S3 or would translate into more than one round-trip would either fail (random writes) or faked (no per-file permission). Goofys does not have a on disk data cache, and consistency model is close-to-open.


Pre-built binaries are available here. You may also need to install fuse-utils first.

$ export GOPATH=$HOME/work
$ go get
$ go install
$ cat > ~/.aws/credentials
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY
$ $GOPATH/bin/goofys <bucket> <mountpoint>
$ $GOPATH/bin/goofys <bucket:prefix> <mountpoint> # if you only want to mount objects under a prefix

Users can also configure credentials via the AWS CLI or the AWS_ACCESS_KEY and AWS_SECRET_KEY environment variables.

To mount an S3 bucket on startup, make sure the credential is configured for root, and can add this to /etc/fstab:

goofys#bucket   /mnt/mountpoint        fuse     _netdev,allow_other,--file-mode=0666    0       0

Got more questions? Check out questions other people asked


Using --stat-cache-ttl 0 --type-cache-ttl 0 for goofys -ostat_cache_expire=1 for s3fs to simulate cold runs. Detail for the benchmark can be found in Raw data is available as well. Test was run on an EC2 hi1.4xlarge in us-west-2a connecting to a bucket in us-west-2. Units are seconds.

Benchmark result

(†) riofs does not wait for HTTP response before returning from release(), so the create files benchmarks do not measure the right thing for it


Copyright © 2015 Ka-Hing Cheung

Licensed under the Apache License, Version 2.0

Current Status

goofys has only been tested under Linux.

List of non-POSIX behaviors/limitations: * only sequential writes supported * does not store file mode/owner/group * use --(dir|file)-mode or --(uid|gid) options * does not support symlink or hardlink * ctime, atime is always the same as mtime * cannot rename non-empty directories * unlink returns success even if file is not present

In addition to the items above, the following supportable but not yet implemented: * appending to a file * creating files larger than 1TB


Related Repositories



a Filey System for Amazon S3 written in Go ...



S3 volume for docker based on goofys ...



a Filey System written in Go ...

Top Contributors

kahing andrewgaul lrowe blampe bedge reo7sp jfwarner


-   v0.0.8 zip tar
-   v0.0.7 zip tar
-   v0.0.6 zip tar
-   v0.0.5 zip tar
-   v0.0.4 zip tar
-   v0.0.3 zip tar
-   v0.0.2 zip tar
-   v0.0.1 zip tar