How to Mount S3 Bucket on Local Disk

It all starts with FUSE, FUSE is File System User Space. Operating Systems have Kernel Space and User Space. Kernel Space is where low-level interaction with hardware occurs, this space has all privileges, User space is restricted, it has to communicate with kernel space to have access to resources.

Why FUSE:

This file system residing in user space has to interact with the kernel so this is done by FUSE which is a module in kernel space and provides API to interact from user space to kernel space probably the VFS(virtual file system) which resides in kernel space.

So FUSE is what responsible for creating new features, new file systems without worrying about security and maintainabilty of the kernel.

Using S3FS to mount S3 Bucket to Local Disk:

Install:

Ubuntu 16.04:

sudo apt-get install s3fs

Ubuntu/CentOS:

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.77.tar.gz
mv v1.77.tar.gz s3fs-fuse-1.77.tar.gz
tar zxvf s3fs-fuse-1.77.tar.gz
cd s3fs-fuse-1.77/
./autogen.sh
./configure — prefix=/usr
make
make install

ArchLinux:

pacman -S s3fs

Credentials:

<your_aws_key_id>:<your_aws_secret_key>

Mount:

mkdir /tmp/cache
mkdir /s3mnt
chmod 777 /tmp/cache /s3mnt
chmod 600 ~/.passwd-s3fs

s3fs -o use_cache=/tmp/cache <your_bucket_name> /s3mnt

That’s it, now you can manage your bucket as if a local directory.

The article was originally published at MicroPyramid blog.

--

--

Python, Django, Android and IOS, reactjs, react-native, AWS, Salesforce consulting & development company

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
MicroPyramid

Python, Django, Android and IOS, reactjs, react-native, AWS, Salesforce consulting & development company