Mount S3 on linux
Amazon S3
Important considerations when using s3fs, namely related to the inherent limitations of S3:
– no file can be over 5GB
– you can’t partially update a file so changing a single byte will re-upload the entire file.
– operation on many small files are very efficient (each is a separate S3 object after all) but large files are very inefficient
– Though S3 supports partial/chunked downloads, s3fs doesn’t take advantage of this so if you want to read just one byte of a 1GB file, you’ll have to download the entire GB.
I tested using a RedHat 6.3 AIM
Pre-Requisites:
# yum install gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap curl
compile/install fuse
# wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz/download
# tar -zxvf fuse-2.9.2.tar.gz
# cd fuse-2.9.2
# ./configure –prefix-/usr
# make && make install
Verify the version:
# pkg-config –modversion fuse
# autoreconf –install
# ./configure –prefix=/usr
# make
# make install
# s3fs –version
Now lets mount the S3 into my linux server
First set the credentials (can be found on your AWS Security Credentials page)
# vi /etc/passwd-s3fs
bucketName:accessKeyId:secretAccessKey
Go into the S3 and create a MYBUCKET as a test
Now lets try to mount:
# s3fs MYBUCKET /mnt/s3_mybucket -o use_cache=1,default_acl=public-read-write,allow_other,use_rrs=1,passwd_file=/etc/passwd-s3fs
fuse: warning: library too old, some operations may not not work
But it works fine, I was able to create/delete list etc..
I also used a Desktop Client called DragonDisk to make it easier to “put” files on my bucket.
Referebces:
s3fs – fuse version problem/solution
http://code.google.com/p/s3fs/issues/detail?id=170
s3fs – man page
http://linux.die.net/man/1/s3fs