Mount S3 bucket to Linux operating system
To mount an S3 bucket to a Linux machine, you can use a tool like s3fs
Step 1: Install dependencies
sudo apt-get update -y
sudo apt-get install s3fs -y
Step 2: Store your credentials
Create a credentials file to store your access and secret keys securely
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
Replace ACCESS_KEY_ID
and SECRET_ACCESS_KEY
with your actual credentials.

Step 3: Create a mount point
Create a directory where the S3 bucket will be mounted:
sudo mkdir /mnt/s3bucket

Step 4: Mount S3-Compatible Storage with Path-Style Addressing
s3fs BUCKET_NAME /mnt/s3bucket -o passwd_file=~/.passwd-s3fs,url=https://YOUR_S3_ENDPOINT,allow_other,use_cache=/tmp,sigv4,use_path_request_style
Breakdown of the Options:
BUCKET_NAME
: Replace this with your actual bucket name./mnt/s3bucket
: The mount point where the bucket will be mounted.-o passwd_file=~/.passwd-s3fs
: Specifies the path to the file where your credentials are stored (replace with your own credentials file path if necessary).url=https://idr01.zata.ai with your S3-compatible service's endpoint.
allow_other
: Allows other users to access the mounted directory.use_cache=/tmp
: Caches files locally/tmp
to improve performance.sigv4
: Forces Signature Version 4 signing (needed for most S3-compatible services).use_path_request_style
: Forces path-style addressing, which is required for some S3-compatible service
Step 5: Verify the mount
sudo df -h

Now check to mount to navigate to the directory and create a new file on your system.

Now back to the Zata.ai dashboard click on the bucket section, select the bucket, and check the content

Lets see file has been created.

To mount an S3-compatible bucket with path-style addressing permanently (so that it is automatically mounted at boot), you can add an entry to your /etc/fstab file. Here’s how to configure that:
Open /etc/fstab in an editor
sudo vi /etc/fstab
Add an entry to mount your S3 bucket. The format should look like this:
s3fs#Bucket_Name /mnt/s3bucket fuse _netdev,nonempty,allow_other,url=https://idr01.zata.ai,use_path_request_style,passwd_file=/root/.passwd-s3fs 0 0
Replace BUCKET_NAME
with your S3 bucket name.

Now, check if the mount entry in /etc/fstab works properly by running the following command
sudo mount -a
Now, reload the daemon service
sudo systemctl daemon-reload
Now, reboot the system and check the mount directory.
df -h

Verify the Mount:- To confirm that the bucket is mounted, list the contents of your mount point.
sudo ls /mnt/s3bucket

Last updated