因为“阔研”得需要,最近需要使用S3FS搭建一个云存储平台,网上这方面的资料还是蛮多,但感觉还是有点杂乱,希望自己能够整理一下,这样的话在以后再次搭建这个平台的时候不会出现这样或者那样的问题。S3FS搭建平台资料很多,每个人有自己的看法以及思路,下面是按照我自己的习惯以及出现的问题(解决方案)来进行搭建的(安装环境在ubuntu12.04LTS)。
1.相关依赖库的安装
apt-get install gcc
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
注: 如果你在使用ubuntu时,没有进行update的话,可能会出现点问题,不过很容易解决,只要sudo apt-get update,然后在进行安装就可以了
2. 安装fuse(S3FS是在FUSE上进行编译的,所以有必要在安装之前安装fuse)
s3fs的编译需要fuse版本在2.8.4以上,如果系统默认安装的fuse版本低于2.8.4,则需要另外编译安装fuse2.8.4.在这里我是从官网上下载了最新的版本fuse2.9.2
cd fuse-2.9.2/
tar xzf fuse_2.9.2tar.gz
sudo ./configure
sudo make
sudo make install
sudo export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/(这里可能出现export:没有这个命令的问题,这个时候可以去掉sudo,然后在重新执行这条命令就可以了)
sudo ldconfig
sudo modprobe fuse
sudo pkg-config --modversion fuse (confirm that 2.9.2 is the version displayed)
3.安装S3FS
在这一步我使用是已经下载并且进行相对应功能改变的S3FS。
tar xvzf s3fs-1.61.tar.gz
cd s3fs-1.61/
sudo ./configure --prefix=/usr
sudo make
sudo make install
注:可能出现sudo ./configure:command not found这一个错误。这个问题主要是./configure没有执行权限照成的。可以通过chmod +x configure来进行解决
为了测试一下是否安装成功,可以在命令行下输入s3fs,如果出现:s3fs:missing BUCKET argument Usage:S3fs BUCKET:[PATH] MOUNTPOINT [OPTION]说明安装成功。
4.S3FS使用
1.如何使用S3FS挂载S3:sudo vim /etc/passwd-s3fs,然后在里面输入输入[accessKeyId]:[secretAccessKey]键值对(这个也就是我们所说的用户名以及密码的配置文件,不过是ID以及Key)。
2.接下来就是相关操作
sudo chmod 640 /etc/passwd-s3fs
sudo mkdir /mnt/s3 (服务器挂载点)
3.s3fs [your-s3-bucket-name] /mnt/s3 -o use_cache=/tmp
对上面的命令进行分解,[your-s3-bucket-name]是在amazon上面的目录,/mnt/s3是本电脑/服务器的目录 use_cache=/tmp是缓冲区
卸载:fusermount -u /mnt/s3
如果出现:s3fs: could not determine how to establish security credentials这样的问题,那么就需要把挂载命令换成:
s3fs [your-s3-bucket-name] /mnt/s3 -o use_cache=/tmp
-o allow_other(最好在root权限下,不然的话可能会出现s3fs: unable to access MOUNTPOINT use_cache=/tmp: No such file or directory)
4.S3fs得调试功能:
首先s3fs -f [your-s3-bucket-name] /mnt/s3(挂载点) -o use_cache=/tmp
然后:保证这个终端不关,开启另一个终端,进入挂载点进行操作,这样的话就可以在前面那个终端看到相关得调试信息
5. S3fs使用botan加密算法对上传的数据进行加密,需要使用到的加密库为botan。可以再软件中心搜索libbotan以及libbotanxx-dev进行安装
6.在centos5.6 i386以及ubuntu12.04 i386在运行s3fs的时候可能会出现问题,出现ACCESS KEY environment variable的问题,对于这个问题,可以先使用whereis s3fs获取s3fs的安装路径,比方说出现/usr/bin/s3fs /usr/local/bin/s3fs....这个时候应该使用/usr/bin/s3fs代替s3fs进行操作。