Why FUSE:
To add different file system types like glusterFS(has many features like load balancing, replication other complex stuff), s3FS(will be explained shortly) and many more makes the software bloat, because when code gets heavier handling it becomes tough, kernel should be safe, neat and secure so introducing features will make it complex to maintain, so we use user space instead of kernel space to create our desired file systems.
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:
Edit ~/.passwd-s3fs
<your_aws_key_id>:<your_aws_secret_key>
Mount
First create a cache to improve performance and then mount your bucket to s3mnt directory.
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, I guess now you can manage your bucket as if a local directory. If require any support then contact our AWS Consultant to make your work better.