> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/docs/_mcp/server.

# Mount a Bucket as a Filesystem

> Access an IBEE Object Storage bucket as a local directory using s3fs or rclone, so tools that expect POSIX paths can read and write objects.

A bucket can be mounted as a local filesystem, letting tools that expect POSIX paths read and write objects without any code changes. This is useful for migrations, backup tools, build pipelines, or any utility that doesn't speak S3 natively.

> **Info**
>
> Object Storage isn't a real POSIX filesystem. Mounted access works well for sequential reads, batch writes, and general file workflows — but avoid it for random small writes or anything that depends on file locking.

## Before you begin

* A bucket ([Create a bucket](/docs/infrastructure/object-storage/buckets))
* An [API credential](/docs/infrastructure/object-storage/api-tokens) with at least **Object Read & Write** scope on the target bucket
* The S3 endpoint for the bucket's workspace: `https://{workspaceId}.blob.ibeestorage.com` (shown as **S3 Endpoint** when you create the credential)

## Pick a tool

| Tool       | Best for                                       | Notes                             |
| ---------- | ---------------------------------------------- | --------------------------------- |
| **s3fs**   | Linux / macOS — quick mount of a single bucket | Simple, FUSE-based                |
| **rclone** | Cross-platform, large transfers, scripting     | Has both `mount` and `sync` modes |

## s3fs (Linux / macOS)

Install:

```bash
# Ubuntu / Debian
sudo apt-get install s3fs

# macOS
brew install s3fs
```

Save your credentials:

```bash
echo "AKIA...:<your-secret-access-key>" > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
```

Mount the bucket:

```bash
mkdir -p /mnt/my-bucket

s3fs my-bucket /mnt/my-bucket \
    -o url=https://{workspaceId}.blob.ibeestorage.com \
    -o use_path_request_style \
    -o passwd_file=~/.passwd-s3fs
```

Now `/mnt/my-bucket` reads and writes against the bucket.

Unmount:

```bash
fusermount -u /mnt/my-bucket   # Linux
umount /mnt/my-bucket          # macOS
```

### Auto-mount at boot (Linux)

Add to `/etc/fstab`:

```text
my-bucket /mnt/my-bucket fuse.s3fs _netdev,allow_other,url=https://{workspaceId}.blob.ibeestorage.com,use_path_request_style,passwd_file=/root/.passwd-s3fs 0 0
```

## rclone

Install: [rclone.org/install](https://rclone.org/install/)

Configure a remote:

```bash
rclone config
# n) New remote
# name> ibee
# Storage> s3
# provider> Other
# access_key_id> AKIA...
# secret_access_key> <your-secret-access-key>
# endpoint> https://{workspaceId}.blob.ibeestorage.com
```

Mount:

```bash
mkdir -p /mnt/my-bucket
rclone mount ibee:my-bucket /mnt/my-bucket --vfs-cache-mode writes
```

Or sync without mounting:

```bash
rclone sync ./local-dir ibee:my-bucket/remote-dir
```

## Performance notes

* **Sequential is fast, random is slow.** Mounted filesystems shine for whole-file reads and writes; small in-place edits trigger full re-uploads.
* **Cache aggressively.** Tools like `rclone` and `s3fs` have local cache options — use them.
* **Don't use as a database backing store.** No file locking, no atomic appends.

## Common pitfalls

* **Symlinks** are not real symlinks — they become regular files containing the link path.
* **File modification time** comes from object metadata; tools that rely on `mtime` may behave unexpectedly.
* **`du` is slow** because it has to list every object.

## Related

* [Buckets](/docs/infrastructure/object-storage/buckets)
* [Objects](/docs/infrastructure/object-storage/objects)
* [API Credentials](/docs/infrastructure/object-storage/api-tokens)
* [Concepts](/docs/infrastructure/object-storage/core-concepts)