How to Install s3fs on an Ubuntu Server

s3fs is a handy little utility to have in your arsenal if you make use of Amazon’s Simple Storage Service. In a nutshell, s3fs is a FUSE-based file system backed by Amazon S3, which allows you to mount a bucket as a local file system for read/write operations. In other words, this allows you to store files and folders to your S3 account natively and transparently!

To install on Ubuntu takes a little effort, so lets go through the steps shall we?

First, install the prerequisites on your system to allow for the later compiling:

apt-get install build-essential
apt-get install libfuse-dev
apt-get install fuse-utils
apt-get install libcurl4-openssl-dev
apt-get install libxml2-dev
apt-get install mime-support 

Next, let’s build the latest version of FUSE just to be safe. Download the latest tar.gz from Sourceforge: http://sourceforge.net/projects/fuse/files/fuse-2.X/. In my case, this direct link worked for my wget call:

wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.8.7/fuse-2.8.7.tar.gz?ts=1332512245&use_mirror=tenet

Extract the archive, compile and install:

tar xvzf fuse-2.8.7.tar.gz
cd fuse-2.8.7/
./configure
make
sudo make install

Now that we’re ready, grab the latest version of s3fs with wget and follow the same procedure we just did with FUSE:

wget http://s3fs.googlecode.com/files/s3fs-1.61.tar.gz
tar xvzf s3fs-1.61.tar.gz
cd s3fs-1.61/
./configure --prefix=/usr
make
sudo make install

Done! You should now be able to run s3fs on your system. To view the help notes:

s3fs -help

Nifty.

Related Link: http://code.google.com/p/s3fs/

Related Posts:

  • Webmin is a user-friendly web-based interface for Linux server system administration. Previously installing Webmin on your Ubuntu server required a few workarounds thanks to its reliance on deprecated perl libraries, but nowadays you can actually do a full install via the standard APT mechanism. First, edit your ...

  • I was asked to install VMware Tools on one of our older Ubuntu server VMs (10.04 LTS) running on a fairly new vSphere install. It took a little while to find the right instructions to achieve this, but in the end the process itself is pretty simple. Once you are in your vSphere list of servers, right click and o ...

  • The cURL library is a useful tool that allows you to connect and communicate to many different types of servers with many different types of protocols. If you implement a cURL operation in your PHP code and the web page spits out a "Fatal error: Call to undefined function: curl_init()" error message back at you, th ...

  • Being able to administer your Ubuntu servers remotely is one of the most important aspects when running your own server environment, which makes the extremely useful OpenSSH server package an almost critical part of your system after install. Because it is not installed by default (though the option does form part ...

  • If you are running a corporate server that makes use of the Ubuntu linux operating system, chances are pretty high that platform stability is of the essence, and therefore you would most likely be running one of Ubuntu's Long Term Support (LTS) releases. Of course, software updates at a much faster pace than wh ...

About Craig Lotter

Craig Lotter is an established web developer and application programmer, with strong creative urges (which keep bursting out at the most inopportune moments) and a seemingly insatiable need to love all things animated. Living in the beautiful coastal town of Gordon's Bay in South Africa, he games, develops, takes in animated fare, trains under the Funakoshi karate style and for the most part, simply enjoys life with his amazing wife and daughter. Oh, and he draws ever now and then too.

  • Pingback: How to mount a Amazon S3 bucket by using FUSE – S3FS

  • Tom

    I’m a newbie, so I am still missing something very important. Okay, so now I have the s3fs program installed, but now how do I use it?
    I can create a bucket in S3, but what permissions or policies should I give it?
    Do I have to create a user in AMI and somehow link this to the username I am running on my Linux instance?
    A full example would be very much appreciated.