> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ibee.co.in/docs/infrastructure/object-storage/mount-a-bucket-as-a-filesystem/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/_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...:" > ~/.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> # 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) > 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.