explaingit

kahing/goofys

5,542GoAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

A tool that mounts Amazon S3 (and compatible cloud storage like DigitalOcean Spaces or Google Cloud Storage) as a regular folder on your Linux or macOS computer, optimized for speed over full file system compatibility.

Mindmap

mindmap
  root((Goofys))
    What it does
      Mounts S3 as local folder
      Speed-first design
      Multi-provider support
    Supported Providers
      Amazon S3
      DigitalOcean Spaces
      Google Cloud Storage
      Wasabi
      Azure Blob Storage
    Tech Stack
      Go
      FUSE
      AWS credentials
    Limitations
      Sequential writes only
      No symlinks or hardlinks
      No permission tracking
    Use Cases
      Read cloud files locally
      Stream large datasets
      Access S3 like a drive
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Mount an S3 bucket as a local folder on Linux so you can browse and copy files with a regular file manager or shell commands.

USE CASE 2

Stream large datasets from S3 directly into data processing scripts without downloading everything first.

USE CASE 3

Access DigitalOcean Spaces or Google Cloud Storage as a local drive using the same FUSE-based approach as Amazon S3.

USE CASE 4

Read files from cloud storage in a shell script without using the AWS CLI by treating the bucket as a mounted folder.

Tech stack

GoFUSE

Getting it running

Difficulty · moderate Time to first run · 30min

Requires FUSE installed on the host and valid AWS credentials or equivalent for other cloud providers.

Licensed under Apache 2.0, use, modify, and distribute freely for any purpose including commercial use, with attribution.

In plain English

Goofys lets you attach an Amazon S3 bucket to your computer so that it appears as a regular folder. S3 is Amazon's cloud storage service, and normally you interact with it through APIs or dedicated tools. Goofys uses a technology called FUSE to make S3 behave like a local drive, so you can navigate it with a file browser, copy files to it, or read from it the same way you would with a folder on your hard drive. The project describes itself as a "Filey System" rather than a file system because it trades full compatibility for speed. Standard file systems support features like random writes at any position in a file, fine-grained permissions, symbolic links, and renaming large folders. Goofys does not support all of those, because supporting them over S3 would require extra round trips to the cloud and slow things down. It only supports writing files sequentially, does not track file ownership or permissions in the usual way, and does not support symbolic links or hard links. Beyond Amazon S3, Goofys also works with several other cloud storage providers that implement a compatible API, including Ceph-based services like DigitalOcean Spaces, Google Cloud Storage, Wasabi, and Scaleway. It additionally supports Microsoft Azure Blob Storage and Azure Data Lake through a separate configuration described in a companion readme. Installation is available as a pre-built binary for Linux, through Homebrew for macOS, or by building from source using the Go programming language. Credentials for your cloud storage account are read from standard AWS credential files or environment variables. The project is open source under the Apache License 2.0.

Copy-paste prompts

Prompt 1
How do I install Goofys on Linux and mount my Amazon S3 bucket as a folder at ~/s3-data using my existing AWS credentials?
Prompt 2
I want to mount a DigitalOcean Spaces bucket with Goofys. What endpoint and credential settings do I need in the command?
Prompt 3
My script needs to read large files from S3 sequentially. How does Goofys handle sequential reads and is there a performance flag I should set?
Prompt 4
What are the known limitations of Goofys compared to a real POSIX file system, and which use cases will break because of them?
Prompt 5
How do I configure Goofys to mount my S3 bucket automatically at startup on Linux using systemd or fstab?
Open on GitHub → Explain another repo

← kahing on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.