【linux】s3fsでBASE Storageを使ってみる(CentOS6で)
問題
さくらが BASE Storage (B) を始めたので、s3fsで試してみたい。
答え
fuseもs3fsも自前でコンパイルしてみた。
fuse
yumリポジトリのfuseは2.8.3で、最新のs3fsは2.8.4以上が必要らしいので、yum install fuse fuse-devel ではだめっぽかった。
cd /usr/local/src wget http://sourceforge.net/projects/fuse/files/latest/download?source=files tar -xzf fuse-2.9.3.tar.gz cd fuse-2.9.3 ./configure --prefix=/usr make make install
--prefix=/usr
しないと、パスの調整がめんどくさくなりそうなので、簡単そうな設定を選んだ。
(ldconfig、modprobe fuse は必要? → ldconfig しないといけない場合もあった。しなくてもよかったこともあった。)
s3fs
wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.76.tar.gz -O s3fs-fuse-1.76.tar.gz tar -xzf s3fs-fuse-1.76.tar.gz cd s3fs-fuse-1.76 ./autogen.sh export PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr make make install
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
をしないと、./configure のとき、以下のようなエラーになる。
checking for DEPS... configure: error: Package requirements (fuse >= 2.8.4 libcurl >= 7.0 libxml-2.0 >= 2.6 libcrypto >= 0.9) were not met: No package 'fuse' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.
使ってみる
さくらのBASE Storageのユーザー名とトークンを ~/.passwd-s3fs に書く。
vi ~/.passwd-s3fs
書式は、「ユーザー名:トークン」。
namespacexxx:XXXXxxxxXXXXxxxxXXX/x+12345abcdef/abc123
パーミッションを600に変更する。
chmod 600 ~/.passwd-s3fs
マウントする。
mkdir ~/sakura s3fs namespacexxx ~/sakura -o url=https://b.storage.sakura.ad.jp
url=http://b.storage.sakura.ad.jp でも mountできた。
ローカルのファイルと比較すれば、ところどころ体感でも遅く感じる部分はあるけど、touch, vi, cp, mkdir などできた。日本語ファイル名も使用可能。
メモ
CentOS6で、configure で以下のエラーが発生したら、
No package 'libcrypto' found
openssl-devel をインストールする。
yum install openssl-devel
yum install -y openssl-devel libcurl-devel libxml2-devel
コメント