S3-Compatible File System Mounting Tools Compared
Four tools mount S3 as a filesystem, each with different tradeoffs on speed and POSIX compatibility.

S3 is a flat key-value store that speaks HTTP and nothing else: no folders, no file handles, no POSIX locking, none of the plumbing that a normal filesystem gives you for free. It's a flat key-value store that speaks HTTP and nothing else: no folders, no file handles, no POSIX locking, none of the plumbing that a normal filesystem gives you for free. But ML pipelines, legacy ETL jobs, and analytics engines all assume that plumbing exists. They call open(), read(), ls, and expect a real filesystem to answer. Rewriting all of that to speak the S3 API directly is slow, expensive, and a great way to introduce bugs into code that's worked fine for a decade.
So a whole category of tools exists to paper over that gap, most of them using a user-space interception mechanism that intercepts file calls and turns them into S3 requests behind the scenes. That translation layer is where all the interesting engineering tradeoffs live. Idle GPU cycles waiting on data are the clearest sign a storage layer is the bottleneck. Training jobs hammer metadata with millions of small file lookups, then checkpointing turns around and dumps multi-terabyte sequential writes from dozens of GPUs at once. Every tool below handles that whiplash differently, and picking wrong raises your cloud bill and lengthens your training time.
The four axes that separate every S3 mounting tool from every other
Four questions decide whether a tool fits a workload, and they should be asked in this order.
POSIX completeness: does the tool support atomic renames, file locking, symlinks, sparse files, the stuff old code assumes without ever saying so out loud? Full completeness means code runs unmodified. Partial completeness means somebody finds out the hard way, usually in production, that mv doesn't work the way they thought.
Caching architecture is the one that decides most benchmark results. Some tools hit S3 on every single read, full stop. Others cache metadata (file names, sizes, directory listings) but still fetch data fresh each time. A smaller set keeps a hot data cache on local disk, so repeated reads never leave the machine. That third option is usually what separates a benchmark that looks good from one that looks great.
Write support is the axis that eliminates candidates fastest. Some tools support real writes, real overwrites, real appends. Others only support writing a brand-new file start to finish, no editing after the fact. A few fake renames using copy-then-delete, which works but isn't atomic and isn't free.
Cost model: free, open-source tools pass S3's own request costs straight through to the user. Managed services add a layer charge on top, but they also take the operational burden off your plate. Total cost of ownership always has to include the second number.
Amazon S3 Files: the managed NFS approach and its tradeoffs
S3 Files goes GA on April 7, 2026, and it's the first cloud object store to expose a general-purpose bucket as a shared, NFS-compatible filesystem with zero code changes on the client side. That's a meaningfully different architecture from everything else on this list: it's managed NFS (versions 4.2 and 4.1), not FUSE. An agent runs as a sidecar, either on an EC2 instance or inside a Kubernetes pod, and it handles the POSIX-to-S3 translation along with a local metadata cache. Nobody has to babysit a FUSE daemon.
The caching layer is where the performance story gets interesting. S3 Files uses an EFS-backed storage layer to keep hot data local, so repeated reads skip S3. In directory listings on 1,000-plus files, that's 39 milliseconds versus 163 milliseconds for Mountpoint. On a cached 100 MB read, S3 Files hits 0.053 seconds at 1.9 GB/s against Mountpoint's 0.261 seconds, roughly 5x faster. Small file reads (1,000 files) show the widest gap: 4.3 seconds versus 87.1 seconds, a 20x difference. On a 100 MB sequential write, S3 Files clocked 273 MB/s. Mountpoint, for that same test, threw an I/O error. S3 Files buys real write support and a serious caching advantage, in exchange for being a managed, opinionated layer instead of a lightweight client you drop onto any box.
Mountpoint for Amazon S3: built for throughput, explicitly not built for writes
Mountpoint is a FUSE client, built on AWS Common Runtime (CRT) for speed and a small resource footprint, and it translates filesystem calls directly into S3 REST API calls. There's no persistent data cache. Every read, cached or not, goes back to S3. On a cold 100 MB read, that puts it dead even with S3 Files at 0.266 seconds, because at that point both tools are just streaming from S3. The gap appears once a file gets read a second time.
A January 2026 update pushed sequential read throughput up roughly 40% on multi-NIC benchmarks with large objects (tested on a trn1.32xlarge instance in us-east-1), and cut peak memory use by more than half in nearly every benchmark run. Solid gains, and Mountpoint isn't standing still.
Writes are a different story. This isn't a bug list, it's a design philosophy. Mountpoint supports sequential writes for creating new files (open, write, close), full stop. Trying to overwrite an existing file, redirect output with a shell command like tee, or write to a random offset throws an I/O error every time. Rename support doesn't exist; it returns ENOTSUP. Symbolic links don't exist either. The April 2026 head-to-head against S3 Files confirms it: Mountpoint failed every single write test. If a workload is read-heavy and doesn't touch existing files, Mountpoint is a genuinely fast, lean option. If it writes, overwrites, or renames anything, look elsewhere.
s3fs-fuse: the broadest POSIX reach, with maintenance risk
s3fs-fuse is a C++ FUSE client, and it's been around long enough to work with just about any S3-compatible endpoint you can name, on-premises systems included. Every file operation turns into an HTTP round trip against the S3 API. There's an optional local cache, but it's off by default, so most deployments run without one.
On paper, its POSIX coverage beats Mountpoint: it supports directory creation, full writes, deletes, and renames (implemented as a copy followed by a delete, since S3 has no native rename). In practice, that coverage comes at a real cost. Latency runs 10 to 100 milliseconds per operation, and aggregate throughput tops out around 100 MB/s, a meaningful ceiling on any real throughput test. The HTTP-per-operation design is the whole reason: there's no way to make a network round trip fast just by wanting it to be.
There's a maintenance flag to raise too. Installing s3fs-fuse on Amazon Linux 2023 fails due to missing dependencies in the AL2023 package repos, because the build process still assumes older library versions. A tool that won't build cleanly on a current AWS AMI is telling you something about where its maintenance priorities sit.
Goofys: aggressive caching, intentionally fewer POSIX guarantees
Goofys, written in Go, calls itself a "Filey System," not a filesystem, and that's not modesty, it's a mission statement. POSIX compliance is secondary. Performance is the point.
Its caching strategy is narrower than it sounds: Goofys caches directory state and file attributes to cut down on S3 API round trips, but there's no on-disk data cache. It avoids making the call in the first place, rather than making the call faster once it happens. Reads and writes get chunked and parallelized, and directory listings benefit from cached results instead of full prefix scans every time, which saves both latency and API cost.
What it leaves out is the price of admission. Per-file permissions are faked. Random writes fail. There's no strong consistency guarantee across multiple writers, so stale metadata is a real risk if more than one client is touching the same files. Local state may need a rebuild after a node restarts, too. For a single-writer, read-heavy workload, that trade is usually fine. For anything with concurrent writers, this detail becomes visible at 2am.
rclone: the multi-cloud and Windows case
rclone's real job is syncing data across dozens of cloud storage backends. Mounting a bucket as a filesystem is one feature bolted onto that.
On Linux and macOS, it mounts through FUSE, same mechanism as s3fs-fuse and Goofys. On Windows, it needs WinFsp as the underlying driver, and that combination is one way to get an S3 bucket mounted as a network drive on a Windows machine. Its value is breadth: more backends, more platforms, more protocols than anything else here. What it isn't optimized for is the sustained, high-throughput read pattern that a production data pipeline actually needs day in and day out.
JuiceFS: distributed POSIX with metadata separation, for multi-cloud AI workloads
JuiceFS splits the problem in two. File data gets chunked and stored in an object store, whether that's S3, GCS, Azure Blob, or something on-premises. Metadata, directory structure, filenames, attributes, lives in a separate metadata engine. That separation means metadata operations talk directly to a database instead of waiting on object storage latency, which is exactly the operation type (ls, stat, directory walks) that tends to choke a pure file-interception setup built directly over object storage.
This delivers strong POSIX compliance, built specifically for AI and ML training, HPC, and big data analytics workloads, where strict consistency prevents data corruption and failed jobs. It's also cloud-agnostic by design, with cross-region and cross-cloud replication, and metadata sync across deployments, so the same dataset can live across public clouds and on-prem hardware at once.
That flexibility turns backend choice into a cost engineering decision rather than a pure storage decision. For a high-throughput training job spanning multiple clouds, egress charges can add up fast, and backend choice becomes a meaningful cost variable before anyone's even talking about compute cost.
Cloud-agnostic filesystem layers: the case for a storage-agnostic data plane
Lining all these tools up reveals a pattern: the tools that win on POSIX completeness tend to lose on throughput, and the tools that win on throughput tend to lose on writes. Caching architecture is usually what closes that gap, because a well-placed local cache turns a slow network round trip into a local disk read, a different order of magnitude.
That's the specific niche a tool like Archil sits in. Archil mounts S3 buckets as a native filesystem backed by a persistent local cache that serves repeated reads at low latency instead of round-tripping to S3 each time. For training workloads that reread the same shards across epochs, that's the exact pattern where caching architecture, more than POSIX completeness or write semantics, decides whether GPUs sit idle or stay fed.
None of this adds up to one tool winning across the board, and it shouldn't. A read-only training job, a multi-writer analytics pipeline, and a Windows shop syncing across three cloud providers are three different problems wearing the same "mount an S3 bucket" costume. Match the tool to the write pattern first, the POSIX requirements second, and let the cost model settle the tie. That order, in practice, is what keeps a storage decision from turning into a production incident six months later.


